サイトのメールの 1 つに Google アプリをセットアップしているため、Web から何かを行うときに、サイトに組み込まれているメール ルーティングが役に立たなくなります。私がする必要があるのは、ssl/smtp を使用して Google アプリのセットアップに接続することです。これを実現するために、私は PEAR Mail と MIME (HTML コンテンツ用) を使用しました。メッセージは問題なく送信されます...私が抱えている唯一の問題は、送信中に「From」ヘッダーが保存されていないことです。代わりに、アカウントのメールは「from」ヘッダーにあります。
アカウントは Web サーバー側に存在し (すべて Google を経由するため、何の意味もありません)、Gmail アプリの管理側にエイリアスを追加しました。しかし、私が何をしても、「から」は変わりません。
これは、Google アプリの Gmail で単一のアカウントを使用しているときに遭遇するものですか? (--アカウント名から「from」を強制?)
ありがとう
--疑問に思っている人のために、メール送信の関数の例を次に示します。
function pearMail($from, $fromTitle, $to, $subject, $text, $html)
{
require_once "Mail.php";
require_once('Mail/mime.php');
$host = "ssl://smtp.gmail.com";
$port = "465";
$username = "name@domain.com";
$password = "PASSWORD";
$headers = array ('From' => $from,
'Return-Path' => '-do not reply-',
'To' => $to,
'Subject' => $subject);
$crlf = "\n";
// Creating the Mime message
$mime = new Mail_mime($crlf);
// Setting the body of the email
$mime->setTXTBody($text);
$mime->setHTMLBody($html);
$body = $mime->get();
$headers = $mime->headers($headers,true);
// Sending the email
$mail =& Mail::factory('smtp',
array ('host' => $host,
'port' => $port,
'auth' => true,
'username' => $username,
'password' => $password));
$mail->send($to, $headers, $body);
if (PEAR::isError($mail)) {
echo("<p>" . $mail->getMessage() . "</p>");
} else {
echo("<p>Message successfully sent!</p>");
}
}