如何格式化包含逗号的电子邮件"发件人"标题

Dal*_*lin 21 email email-headers

格式化"发件人"电子邮件标题的标准方法是

From: John Doe <john.doe@example.com>
Run Code Online (Sandbox Code Playgroud)

但如果名字中有逗号,该怎么办?

From: John Doe, chief bottle washer <john.doe@example.com>
Run Code Online (Sandbox Code Playgroud)

如果我这样做,我的MTA会自动将其转换为:

From: John@this.server.com, Doe@this.server.com, chief bottle washer <john.doe@example.com>
Run Code Online (Sandbox Code Playgroud)

我的第一个猜测是在全名周围使用双引号,但我找不到任何官方文档确认这一点,我希望所有电子邮件客户端都能阅读我的电子邮件.

Dal*_*lin 25

要详细说明@ Fls'Zen的答案,是的,正确的方法是将名称括在双引号中.

从实际的角度来看,用双引号包装所有名称都没有坏处,如果它出现在显示名称中\"(或者只用单引号替换),请确保转义双引号.但是如果你想完全按照规范,你不应该使用双引号.

对于所有密集的细节,电子邮件头字段由RFC 5322定义.From头中多个发起者的相关部分是3.6.2,引用分隔符的相关部分是3.2.13.2.4.


Dio*_*lis 5

以下正则表达式匹配时,必须引用电子邮件显示地址。

[^-A-Za-z0-9!#$%&'*+/=?^_`{|}~\s]
Run Code Online (Sandbox Code Playgroud)

对于 ASCII 字符,可以通过使用反斜杠转义任何双引号字符并将字符串括在双引号中来完成。对于非 ASCII 字符,需要更复杂的MIME 转义。


Fls*_*Zen 3

电子邮件标头字段由RFC 5322定义。标头中多个发起者的相关部分From3.6.2。引用分隔符的相关部分是3.2.13.2.4

  • 是的,这是正确的方法。始终使用双引号不会造成任何损害,只要确保在显示名称中出现双引号时对其进行转义即可。 (2认同)