我想从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但不下载附件的邮件?
答案 0 :(得分:0)
正确的方法是请求邮件的BODYSTRUCTURE
并仅获取相关部分。
在评论中,您建议您已提取BODYSTRUCTURE
,并且部分1
对应于text/plain
MIME部分。请告诉我们整个未经处理的BODYSTRUCTURE
;如果没有它,我们无法判断您使用的IMAP服务器是否有错误,或者您对BODYSTRUCTURE
的理解是否错误。