避免 PHP double 至:header

Avoiding PHP double To: header

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

但是直到现在,我还在附加的 header 中添加了 To: header。例如,我会将电子邮件 "user@email.com" 传递给邮件功能,但除此之外,我还将在下面包含一个 header 作为 header.

的一部分
 "To:Users Name <user@email.com>"

结果是 php 邮件在电子邮件中包含一个 To: header TWICE,一次是电子邮件地址(传递到函数的第一个参数),另一个是一部分header 参数传递给 php 邮件。

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

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

所以有几个问题:

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

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

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

Normally, a mailbox is comprised of two parts: (1) an optional display name that indicates the name of the recipient (which could be a person or a system) that could be displayed to the user of a mail application, and (2) an addr-spec address enclosed in angle brackets ("<" and ">"). There is also an alternate simple form of a mailbox where the addr-spec address appears alone, without the
recipient's name or the angle brackets.

有些电子邮件客户端将使用格式来实际显示名称 together/in 而不是电子邮件地址,这使它对用户来说更易读。正如您所看到的,仅使用单个地址被视为完整两个部分的替代方法。

是否有任何理由不将完整的 header (即姓名和电子邮件)传递到邮件功能的第一个参数中,而将其保留在外 额外的 header 参数?

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