首页 >后端开发 >php教程 >为什么我的 PHP mail() 函数的'From”标头被忽略,如何修复它?

为什么我的 PHP mail() 函数的'From”标头被忽略,如何修复它?

DDD
DDD原创
2024-12-01 10:54:09546浏览

Why is my PHP mail() function's

PHP Mail 中的“From”标头问题

为了增强用户功能,开发了一个网站来自动向用户发送电子邮件登记。用于此任务的 PHP 代码详细如下:

<?php
$to = "[email&#160;protected]";
$subject = "Test mail";
$message = "Hello! \nThis is a simple email message.";

$headers = "From: [email&#160;protected]";
$headers .= "\r\nReply-To: [email&#160;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&#160;protected]");

此参数指定“-f”选项,允许为许多 ISP 手动设置“From”标头.

以上是为什么我的 PHP mail() 函数的'From”标头被忽略,如何修复它?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn