php邮件与outlook无法完美配合

时间:2012-04-11 05:23:13

标签: php 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);

2 个答案:

答案 0 :(得分:2)

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

$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上运行,请在sendmail_from中设置php.ini INI指令或使用:

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


来源: RFC2822php.net user commentIBM sendmail command reference

答案 1 :(得分:0)

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