【问题标题】:Set Sender-header with mail()使用 mail() 设置 Sender-header
【发布时间】:2016-03-26 06:32:35
【问题描述】:

问题的简短版本:

在 PHP 中使用 mail() 发送邮件时,如何将 Sender: 标头设置为 webmaster@ourdomain.com?

(这是 Sender: 标头,而不是 From: 标头)

长版:

我们的服务器发送的邮件被错误地识别为垃圾邮件。普通邮件(来自邮件客户端)没有这个问题(DKIM/SPF都OK)。

普通邮件和服务器发送邮件的最大区别在于“Sender:”标头。从邮件客户端发送邮件时一切正常:

From: name@ourdomain.com
X-Sender: name@ourdomain.com

通过 PHP 发送的邮件的标题如下:

From: name@ourdomain.com
Sender: admin@vps1949.ourvpsprovider.com  

第二个邮件地址确实存在,但我绝对不希望我们的管理员邮件地址在那里。管理员地址使一些邮件服务器认为它是垃圾邮件——它绝对不是。 (它被视为垃圾邮件,因为尽管我们在 vps1949.ourvpsprovider.com 的 DNS 中有 MX 记录和 SPF 记录,但邮件服务器不知何故无法识别这些记录。我只是对 DNS 有中等经验,不足以理解为什么会这样。)

ourdomain.com 和 vps1949.ourvpsprovider.com 当然指向同一个 IP。

那么,在 PHP 中使用 mail() 发送邮件时,如何将 Sender: 标头设置为 webmaster@ourdomain.com?那将为我们解决它。

(这是 Sender: 标头,而不是 From: 标头)

这将解决我们所有的问题。

在 Google 上没有运气,我搜索了几个小时并尝试了几件事无济于事。 (例如,sendmail 上的 -f 标志不是解决方案。)

由于我们有一个 VPS,我拥有完整的服务器访问权限,因此如果需要,可以更改或添加一个 ini 文件。 (我找不到 sendmail.ini。)

有人可以帮忙吗?

【问题讨论】:

    标签: php email sendmail email-headers mail-sender


    【解决方案1】:

    考虑为您的服务器 IP 地址设置反向 DNS 值。这必须由您的 ISP 完成。不正确的值会导致邮件进入垃圾文件夹。

    【讨论】:

    • 嗨!谢谢回答。我有一个 VPS,所以没有 ISP。我尝试设置反向 DNS 并重新启动服务器。它对 Sender:-header 没有任何影响。难道是我不得不等几个小时?我之前尝试将反向 DNS 设置为我们的域名,但我把它放回去了,它有一些令人讨厌的副作用(不记得是哪些),可能是因为一切都是使用 vps1949.ourvpsprovider.com 作为反向 DNS 设置的。这就是我不敢等那几个小时的原因。
    【解决方案2】:

    我通过更改服务器上的主机名解决了这个问题。我找到了How to change envelope from address using PHP mail?,并采取了大家不喜欢的答案。有效。最后,花了好几个星期才找到这个……太容易了。

    对于任何拥有相同并且恰好在 CentOs 7 上运行的人: http://www.itzgeek.com/how-tos/linux/centos-how-tos/change-hostname-in-centos-7-rhel-7.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-06-10
      • 1970-01-01
      • 2010-10-02
      • 1970-01-01
      • 2011-08-02
      • 2015-07-22
      • 1970-01-01
      相关资源
      最近更新 更多