PHP邮件不能与Outlook完美配合


php mail not working perfectly with outlook

我在使用 PHP 发送邮件时遇到问题。Outlook 正确接收邮件,但电子邮件中未显示"发件人"地址。

$subject = $_POST['message_subject'];
$message = $_POST['speaker_description'];
$email   = $_POST['email'];
$option  = $_POST['sel_reg_options'];
$email   = substr_replace($email ,"",-1);
$headers .= "Content-type: text/html; charset=iso-8859-1'r'n";
$headers .= "From:My Name<myifno@mysite.com>'r'n";
$headers .= "Reply-To: Registration of Interest<info@mysite.com>'r'n";          
$headers .= "MIME-Version: 1.0"."'r'n";
$mail_sent = @mail($email,$subject,$message,$headers);

您应该将名称括在双引号中(这也适用于回复地址名称):

$headers .= "From: '"My Name'" <myifno@mysite.com>'r'n";


此外,如果在 Unix 上运行 PHP,请将 FROM 信封添加到 $additional_parameters 参数中:

$mail_sent = @mail($email,$subject,$message,$headers,'-f myifno@mysite.com');


相反,如果在 Windows 上运行,请在 php.ini 中或使用以下命令设置 sendmail_from INI 指令:

ini_set('sendmail_from', 'myifno@mysite.com');


来源:RFC2822,php.net 用户注释,IBM sendmail 命令参考

我最近刚刚将电子邮件脚本切换到PHPMailer。它使创建和发送电子邮件变得更加容易。我不再担心不正确的标题以及PHP和电子邮件的复杂性。我在格式化电子邮件时也没有遇到任何问题,以便在几个电子邮件客户端中正确接收它们。