pyramid_mailer主题标题问题

时间:2012-10-18 17:02:50

标签: python email pyramid

当我在gmail web客户端使用pyramid_mailer发送电子邮件时,一切看起来都不错,但在任何桌面客户端中subject都包含问号,例如: enter image description here

如果电子邮件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 (кольцевание)

我如何摆脱这个问题?

2 个答案:

答案 0 :(得分:1)

我只是committed a fix,所以你应该能够在repoze.sendmail 4.0或4.0b2中获取它,无论哪个是下一个版本。

答案 1 :(得分:0)

是的..对我来说听起来像个bug ... python base64.encodestring()将长字符串拆分成多行,我猜是导致问题。

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