我已经在我的 CentOS 服务器上设置了 Postfix。
如果电子邮件的主题包含一些非英文字符(即重音字母),则会被破坏。
这是一个例子。
原始主题:
this is a testà è ciao
主题,一旦传送到服务器:
=?ISO-8859-1?Q?this_is_a_test=E0_=E8_ciao?=
我知道这现在是 MUA 的问题,因为:_ 很多用户都报告了这个问题 - 因此发件人的 MUA 不在考虑范围内
_ 我检查了服务器上的原始电子邮件(我使用 VI 访问实际文件)
我猜想这是字符集的问题,但是在 Postfix 配置文件中我找不到如何处理字符集的方法。
谢谢,
丹
答案1
事实上,Postfix 似乎做了它应该做的事情,根据RFC2047:非 ASCII 文本的消息头扩展。在正文中你可以有 8 位数据,但我相信标题普遍同意只使用 7 位数据。
使用一些示例 Python 测试转换表明标题已正确转换:
>>> import email.header as eh
>>> r= eh.decode_header('=?ISO-8859-1?Q?this_is_a_test=E0_=E8_ciao?=')
>>> print r
[('this is a test\xe0 \xe8 ciao', 'iso-8859-1')]
>>> print r[0][0].decode(r[0][1])
this is a testà è ciao
正如 Mark Henderson 在评论中暗示的那样,我并没有试图彻底了解您问题的原因。因此:最终用户邮件客户端可能不会转换回主题行。您能为我们提供邮件的原始标题吗?您可以通过查看 Thunderbird 中的“邮件源”(通常Ctrl+U)来查看,作为示例。