【问题标题】:How to correctly encode commas in email display name?如何正确编码电子邮件显示名称中的逗号?
【发布时间】:2014-06-04 16:13:37
【问题描述】:

我遇到了与this question 类似的问题,但在答案中找不到任何有用的信息。

我正在尝试使用 Quoted-Printable 编码向显示名称为 Lastname, firstname 的收件人发送电子邮件。如收到的电子邮件的来源所示,确切的标题是:

To: =?UTF-8?Q?"Lastname,=20firstname"?= <email@example.com>

但是,Outlook 会这样显示:

有效地将逗号解释为收件人之间的分隔符,即使它包含在 Quoted-Printable 编码中。

当没有逗号时,标题被正确解释。

是我做错了什么,还是不可能在display-name 中使用逗号?

注意:我目前正在使用 Amazon SES 和 ZF2 Zend\Mail 组件,但工具应该无关紧要,我只对正确的标头格式感兴趣,并将相应地调整我的工具或代码。

【问题讨论】:

    标签: email zend-framework2


    【解决方案1】:

    据我所知,您所看到的行为并不正确,但解决方法应该很明显:QP 编码逗号。双引号是多余的,应该省略:

    From: =?UTF-8?q?Lastname=2C_Firstname?= <email@example.com>
    

    (因此,将姓氏放在首位显然是不明智的;但例如连接到 Active Directory 的 Outlook 似乎坚持这种愚蠢的反惯例。)

    【讨论】:

    • 确实,它看起来像是这个库中的一个错误。这让我注意到 PHP 的 quoted_printable_encode() 也不编码逗号或空格。不管怎样,我想我会改用 base64 编码,活得开心!
    • QP 本身并不强制执行此操作; RFC2047 编码有自己的一些额外要求。
    猜你喜欢
    • 2012-12-26
    • 1970-01-01
    • 1970-01-01
    • 2021-07-30
    • 1970-01-01
    • 2019-04-12
    • 2011-04-10
    • 2015-07-31
    • 2011-11-20
    相关资源
    最近更新 更多