0

我只想从 Gmail(通常是 imap 服务器)获取电子邮件文本正文,而无需下载整个邮件。

如果我获取 RC822,我可以得到一切都很好:

mail_box.fetch(message_ids, '(RFC822)')

但问题是,如果我有太多的邮件和附件,这需要很多时间。

我可以得到我需要的标题和正文:

mail_box.fetch(message_ids, '(RFC822.HEADER BODY.PEEK[1])')

但是这种方式我无法解析文本正文,它有一个奇怪的格式:

'\r\n------=_NextPart_001_0011_01CB63DF.D39BA1C0\r\nContent-Type: text/plain;\r\n\tcharset="iso-8859-1"\r\nContent-Transfer-Encoding: quoted-printable\r\n\r\nRafael, ...other content like html tags and css...------=_NextPart_001_0011_01CB63DF.D39BA1C0--\r\n'

尝试使用 email.message_from_string 和 quopri 模块解析它,但到目前为止没有运气。

可能吗?要获取格式如 RFC822 但不下载附件的消息?

4

1 回答 1

0

正确的方法是请求BODYSTRUCTURE消息并仅获取相关部分。

在评论中,您建议您已经获取了BODYSTRUCTURE并且该部分1对应于text/plainMIME 部分。请给我们看完整的,未处理的BODYSTRUCTURE;没有它,就无法判断您使用的 IMAP 服务器是否有问题,或者您对它的理解是否BODYSTRUCTURE错误。

于 2013-10-30T15:20:26.270 回答