0

我正在使用 imap 从运行良好的服务器检索邮件。我正在获取 RFC 822 中的邮件,如下所示:

r, data = mailserver.fetch(mailnr, '(RFC822)')

这给了我大部分可破译的邮件,但现在我有一个看起来像这样的多部分邮件:

发件人:xxxxxx

收件人:xxx xxx

主题:=?utf-8?Q?online_verf=C3=BCgbar_-_TESTQUELLE_f=C3=BCr_Regel?= =?utf-8?Q?-_u_Benachrichtigungdienst_()?=

内容类型:多部分/替代;边界="----=_NextPart_457512452482695058637"

内容传输编码:无

MIME 版本:1.0

有效载荷:

=20 =20 sourcename:TESTQUELLE f=C3=BCr Regel-u Benachrichtigungdienst;csi:123456= ;publishdate:05=2E11=2E2013

邮件似乎是 utf-8,但不知何故,文本也是 url 编码或类似的东西。

似乎只使用了 url 编码而不是“%”“=”。

关于我如何让它看起来像普通文本的任何想法?

4

2 回答 2

1

数据似乎是已编码为 UTF-8,然后编码为 quotable-printable 的 unicode 文本。有一个模块“ quopri”来编码/解码这个 - http://docs.python.org/3.3/library/quopri.html

如果您使用quopri.decodestring解码为 UTF-8,然后将其解码为 un​​icode,您应该能够读取它。

于 2013-11-05T11:06:49.367 回答
1

终于找到了这个:

mail.get_payload(decode=1).decode('utf-8')

我只使用了 get_payload() 它给了我那个字符串。

于 2013-11-05T11:07:20.027 回答