You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PHP邮件中添加自定义From字段?CGI-Mailer服务器问题求助

问题分析与解决方案

嘿,我一眼就发现问题出在哪了!你的代码里犯了一个很容易忽略的小错误:每次给$headers变量赋值时都用了直接赋值(=),这会把之前设置的头信息完全覆盖掉!你刚设置好的From头,马上就被后面的Reply-To、X-Mailer等内容冲掉了,相当于这个From根本没生效,邮件自然就用了服务器默认的发件地址。

修正后的代码

把赋值方式改成追加赋值(.=),这样就能把所有头信息拼接在一起,同时建议用\r\n作为换行符(这是邮件头的标准换行格式,兼容性更好):

<?php
$to = "a@email.com";
$subject = "Test mail HTML";
// 先初始化headers,设置From
$headers = "From: a@email.com" . "\r\n";
// 用.=追加后续的头信息
$headers .= "Reply-To: a@email.com" . "\r\n";
$headers .= "X-Mailer: PHP/" . phpversion() . "\r\n";
$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";

$message = 'a message';
mail($to, $subject, $message, $headers);
echo "邮件发送成功!";
?>

额外注意事项

  • 有些主机服务商为了防范垃圾邮件,会强制要求发件人地址(From)必须是该主机上的有效邮箱(比如和你的网站域名一致的邮箱)。如果改完代码还是显示服务器邮箱,建议检查主机的邮件发送规则,或者使用主机提供的合法邮箱作为From地址。
  • 如果你需要更灵活的邮件发送控制(比如支持SMTP认证、附件发送等),可以考虑使用PHPMailer或SwiftMailer这类专业的邮件库,它们比原生的mail()函数更可靠,也更容易调试。

内容的提问来源于stack exchange,提问作者Adam Martin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:10:40