使用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);
答案 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');
来源: RFC2822,php.net user comment,IBM sendmail command reference
答案 1 :(得分:0)
我最近刚将电子邮件脚本切换为PHPMailer。它使创建和发送电子邮件变得更加容易。我不再担心错误的标题和PHP和电子邮件的复杂性。我没有格式化电子邮件的任何问题,以便在那里的几个电子邮件客户端中正确接收它们。