PHP Mail 中的“From”标头问题
为了增强用户功能,开发了一个网站来自动向用户发送电子邮件登记。用于此任务的 PHP 代码详细如下:
<?php $to = "[email protected]"; $subject = "Test mail"; $message = "Hello! \nThis is a simple email message."; $headers = "From: [email protected]"; $headers .= "\r\nReply-To: [email protected]"; $headers .= "\r\nX-Mailer: PHP/".phpversion(); mail($to,$subject,$message,$headers); echo "Mail Sent."; ?>
通过此代码发送电子邮件时,出现了意外问题。已发送电子邮件中显示的“发件人”标头仍为“[email protected]”,而“Reply-To”标头正确反映了指定的“[email protected]”值。使用的邮件服务器是box123.bluehost.com。
问题原因
经过进一步调查,确定使用Gmail地址作为“ From”值是问题的根本原因。包括 Bluehost 在内的互联网服务提供商 (ISP) 通常限制使用外部电子邮件地址作为“发件人”值,以防止电子邮件欺骗。结果,ISP 用默认值覆盖了“发件人”地址。
解决方法
要解决此问题并将回复重定向到预期地址,请执行以下操作:建议改用“Reply-To”标头。此外,还可以在 mail() 函数中添加第五个参数,如下所示:
mail($to,$subject,$message,$headers,"-f [email protected]");
此参数指定“-f”选项,允许为许多 ISP 手动设置“From”标头.
以上是为什么我的 PHP mail() 函数的'From”标头被忽略,如何修复它?的详细内容。更多信息请关注PHP中文网其他相关文章!