我正在使用php邮件功能发送电子邮件。 我传递了to地址,还建立了一些其他电子邮件标题,包括发件人:和答复收件人:。
但是,到目前为止,我还一直在其他标题中包含To:标题。例如,我会将电子邮件“ user@email.com”传递给邮件功能,但除此之外,我还将在下面包含一个to标头作为标头的一部分。
"To:Users Name <user@email.com>"
结果是php邮件在电子邮件中包含一个To:标头TWICE,一次包含电子邮件地址(传递到函数的第一个参数中),另一个则作为标头参数的一部分传递给php邮件。 / p>
TO: user@email.com
TO: Users Name <user@email.com>
结果,它被某些垃圾邮件系统阻止。
所以有几个问题:
包括具有收件人名称和电子邮件的完整的To:标头,而不是没有收件人名称的TO:标头“ user@gmail.com”,会有什么真正的好处。
是否有理由不将完整的标头(即名称和电子邮件)传递到mail函数的第一个参数中,而是将其保留在附加的标头参数之外?
在这里寻找正确的方法。 谢谢
答案 0 :(得分:1)
是否有真正的好处,包括完整的To:标头,其中包含 收件人的姓名和电子邮件,而不是收件人的: 没有收件人名称的“ user@gmail.com”?
是: 从RFC 2822 - Internet Message Format - 3.4. Address Specification
通常,邮箱由两部分组成:(1)可选 显示名称,该名称指示收件人的姓名(可以 可以是向用户显示的人或系统) 邮件应用程序,以及(2)用尖括号括起来的addr-spec地址 方括号(“ <”和“>”)。还有一种替代的简单形式 单独显示addr-spec地址的邮箱,没有
收件人的姓名或尖括号。
有些电子邮件客户端将使用该格式来实际显示名称(而不是显示电子邮件地址),从而使用户更容易理解。正如您所看到的,仅使用单个地址可以看作是完全两个部分的替代方法。
是否有任何理由不将完整的标头(即名称和电子邮件)传递给mail函数的第一个参数,而将其忽略 额外的标头参数?
否,您只能使用第一个参数The mail()
to-parameter complies with RFC 2822.