4

当我在 gmail Web 客户端中使用 pyramid_mailer 发送电子邮件时,一切看起来都很好,但在任何桌面客户端中都subject包含问号,例如: 在此处输入图像描述

如果电子邮件标头的开源代码subject如下所示:

Subject: =?utf-8?b?W9CS0LXQsS3Qk9CY0KEt0LrQvtC70YzRhtC10LLQsNC90LjQtV0g0JDQvdC+0L3Q?=
 =?utf-8?b?uNC8IDIwMTItMTAtMTggMTc6NTg6MzIg0YHQvtC30LTQsNC7INC30LDQv9C40YHR?=
 =?utf-8?b?jCAjMTM1OSAo0LrQvtC70YzRhtC10LLQsNC90LjQtSk=?=

如您所见,它分为三个部分。尝试执行python代码:

import email.header
print email.header.decode_header('=?utf-8?b?W9CS0LXQsS3Qk9CY0KEt0LrQvtC70YzRhtC10LLQsNC90LjQtV0g0JDQvdC+0L3Q?=')[0][0]
print email.header.decode_header('=?utf-8?b?uNC8IDIwMTItMTAtMTggMTc6NTg6MzIg0YHQvtC30LTQsNC7INC30LDQv9C40YHR?=')[0][0]
print email.header.decode_header('=?utf-8?b?jCAjMTM1OSAo0LrQvtC70YzRhtC10LLQsNC90LjQtSk=?=')[0][0]

我们得到以下结果:

[Веб-ГИС-кольцевание] Анон
�м 2012-10-18 17:58:32 создал запис
� #1359 (кольцевание)

我怎样才能摆脱这个问题?

4

2 回答 2

1

我刚刚对此进行了修复,因此您应该能够在 repoze.sendmail 4.0 或 4.0b2 中获得它,以下一个版本为准。

于 2013-03-18T23:42:52.473 回答
0

是的..听起来对我来说也是一个错误... python base64.encodestring() 默认将长字符串拆分为多行,我猜这是导致问题的原因。

解决方案是替换已使用主题中的换行符或使用 binascii.b2a_base64 进行编码..

于 2012-11-22T23:58:30.737 回答