4

我在使用 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);
4

2 回答 2

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_fromINI 指令:php.ini

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


来源: RFC2822php.net 用户评论IBM sendmail 命令参考

于 2012-04-11T05:34:41.030 回答
0

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

于 2014-08-14T20:13:26.620 回答