【问题标题】:Avoiding PHP double To: header避免 PHP double To: header
【发布时间】:2019-04-04 16:30:19
【问题描述】:

我正在使用 php 邮件功能发送电子邮件。 我传递了收件人地址,还构建了一些额外的电子邮件标题,包括 From: 和 Reply-To:。

不过,到目前为止,我还一直在附加标题中包含一个 To: 标题。例如,我会将电子邮件“user@email.com”传递给邮件功能,但另外我将在下面包含一个 to 标题作为标题的一部分。

 "To:Users Name <user@email.com>"

结果是 php 邮件在电子邮件中包含一个 To: 标头 TWICE,一次带有电子邮件地址(传递给函数的第一个参数),另一个作为标头参数的一部分传递给 php mail。

TO: user@email.com
TO: Users Name <user@email.com>

因此它被一些垃圾邮件系统阻止。

所以有几个问题:

  • 是否有任何真正的好处,包括完整的 To: 标头,其中包含收件人姓名和电子邮件,而不是仅包含 TO: 标头“user@gmail.com”而没有收件人姓名。

  • 是否有任何理由不将完整的 to 标头(即姓名和电子邮件)传递到邮件函数的第一个参数中,而将其从附加的标头参数中排除。

在这里寻找正确的方法。 谢谢

【问题讨论】:

    标签: php email-headers


    【解决方案1】:

    是否有任何真正的好处,包括完整的 To: 标头,它具有 收件人姓名和电子邮件,而不是仅仅有一个 TO: 标头 没有收件人姓名的“user@gmail.com”?

    是的: 来自RFC 2822 - Internet Message Format - 3.4. Address Specification

    通常,邮箱由两部分组成:(1) 可选 显示名称,指示收件人的姓名(可以 是一个人或一个系统),可以显示给一个用户 邮件应用程序,以及 (2) 用角括起来的 addr-spec 地址 括号(“”)。还有另一种简单的形式 addr-spec 地址单独出现的邮箱,没有
    收件人姓名或尖括号。

    有些电子邮件客户端将使用该格式来实际显示名称/而不是电子邮件地址,这使得用户更容易阅读。如您所见,仅使用单个地址被视为完全两个部分的替代方法。

    是否有任何理由不将完整的 to 标头(即名称和电子邮件)传递到邮件功能的第一个参数中并将其忽略 额外的标头参数?

    不,你可以只使用第一个参数,The mail() to-parameter complies with RFC 2822.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-22
      相关资源
      最近更新 更多