PHPMailer クラスを使用して送信されるメーリングで送信される名前の設定に問題があります。
php の組み込みmail()
関数と同様の方法で使用できるように、次の関数を作成しました。
function pmail($to, $subject, $message, $headers = "", $attachments = "")
{
date_default_timezone_set('Europe/London');
require_once($_SERVER['DOCUMENT_ROOT']."/lib/inc/class.phpmailer.php");
//include($_SERVER['DOCUMENT_ROOT']."/lib/inc/class.smtp.php"); // optional, gets called from within class.phpmailer.php if not already loaded
$defaultEmail = "reply@example.com";
$defaultEmailName = "Web Mailer";
$mail = new PHPMailer();
$mail->IsSMTP(); // telling the class to use SMTP
$mail->Host = "mail.example.com"; // SMTP server
$mail->SMTPDebug = false; // enables SMTP debug information (for testing, 1 = errors and messages, 2 = messages only, false = off)
$mail->SMTPAuth = true; // enable SMTP authentication
//$mail->SMTPSecure = "tls"; // sets the prefix to the servier
$mail->Host = "mail.example.com"; // sets the SMTP server
$mail->Port = 25; // set the SMTP port for the GMAIL server
$mail->Username = "###"; // SMTP account username
$mail->Password = "###"; // SMTP account password
$mail->SetFrom( ($headers['fromEmail'] != "" ? $headers['fromEmail'] : $defaultEmail), ($headers['fromName'] != "" ? $headers['fromName'] : $defaultEmailName) );
$mail->AddReplyTo( ($headers['replyToEmail'] != "" ? $headers['replyToEmail'] : $defaultEmail), ($headers['replyToName'] != "" ? $headers['replyToName'] : $defaultEmailName) );
$mail->AddAddress($to);
$mail->Subject = $subject;
$mail->AltBody = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test
$mail->MsgHTML($message);
foreach($attachments as $attachment) {
//$mail->AddAttachment("images/phpmailer.gif"); // attachment example
$mail->AddAttachment($attachment);
}
if(!$mail->Send()) {
//echo "Mailer Error: ".$mail->ErrorInfo;
return false;
} else {
//echo "Message sent!";
return true;
}
}
そのようなものでテストするとき;
pmail("test@test.com", "test email", "test message here");
すべて正常に動作し、送信元アドレスはreply@example.com
期待どおりにヘッダーに表示されますが、受信者の受信トレイに表示される名前は、Web Mailer
資格情報を使用して電子メールを送信するユーザーに関連付けられているデフォルトのアカウントではありません。ヘッダーでは、送信者名は Web Mailer として表示されますが、それを表示したいのは受信トレイです
システムに追加のユーザー アカウントを設定して、希望の名前と電子メールで新しいアカウントを作成することはできないため、既存のユーザー アカウントを介して送信する必要があります。この場合、私のメールには私の名前が添付されて送信されますが、名前が Web Mailer として表示されるようにしたいと考えています。
これは可能ですか?