【问题标题】:What is the correct "from" header syntax?什么是正确的“来自”标头语法?
【发布时间】:2014-01-20 13:53:00
【问题描述】:

我们想用 PHP 发送电子邮件。

为了在 Gmail 中更清晰地显示“发件人”,我们希望显示一些 From 文本,例如:

MyDomain.com (Support)

有一个大问题:当使用一些非字母数字字符(点和括号)时,许多电子邮件客户端会截断 From 文本。

例如,雅虎!邮件显示:

MyDomain com (Support)

Gmail 显示:

Support

我们看到一些领先的网站或 PHPMailer 添加了双引号。所以我们生成这个头文件:

From: "MyDomain.com (Support)" <support@mydomain.com>

它看起来可以在我们尝试过的电子邮件客户端(yahoo、gmail、iphone 等)中工作。但是:

  1. 我们无法测试所有客户端
  2. 我们在 RFC 中找不到任何内容
  3. 许多工具不严格遵循 RFC(一些 smtp 可以简单地吃掉电子邮件)

您在处理非字母数字字符方面有何经验?我们的标头是否会在某些客户端中成为问题?

【问题讨论】:

  • 完整参考在RFC2822,第 3.4 节。祝你好运。
  • 你为什么不用swiftmailer
  • 也许他们不知道 SwiftMailer?似乎是一个愚蠢的问题
  • 这个问题更多地与客户端的兼容性有关。我们已经经历过“具有挑战性”的行为,因为一些 smtps 和客户端没有严格遵守 RFC
  • 我会改写我的问题,你试过SwiftMailer吗?

标签: php email


【解决方案1】:

这正是我们不久前使用的语法,没有问题。

不过我建议你切换到PHPMailerSwiftMailer

我们现在使用 PHPMailer,对它很满意。

【讨论】:

  • 您是否见过一些电子邮件客户端在显示/接收带有from 标头中双引号的电子邮件时表现“奇怪”?
  • 不,我不这么认为。据我所知,我们也从未有客户抱怨过这一点。但是为什么你不只是切换到 PHPMailer 呢?这是一个更可靠的解决方案。
  • (我改写了我的问题,因为它令人困惑。抱歉。)语法有效(PHPMailer 在方法EncodeHeader() 中添加双引号),问题更多是关于与客户端的兼容性。 PHPMailer 可以生成有效的标头,但客户端可能无法正确处理这些标头。
  • 不,我明白了。正如我所说,我们使用这个 mrthod 很长时间没有任何问题。现在我们使用 phpmailer 也没有任何问题。所以它工作正常。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-10-25
  • 1970-01-01
  • 2020-05-01
  • 2019-06-03
  • 2011-06-23
  • 2014-04-19
  • 2018-11-14
相关资源
最近更新 更多