【发布时间】:2011-01-14 20:39:57
【问题描述】:
我想从 IMAP4 服务器获取整个消息。 在 python 文档中,如果发现这段代码有效:
>>> t, data = M.fetch('1', '(RFC822)')
>>> body = data[0][1]
我想知道我是否可以始终相信 data[0][1] 返回消息的正文。当我运行 'RFC822.SIZE' 时,我得到的只是一个字符串而不是一个元组。
我浏览了 rfc1730,但无法找出“RFC822”的正确响应结构。从 imaplib 文档中也很难分辨 fetch 结果结构。
这是我在获取RFC822 时得到的结果:
('OK', [('1 (RFC822 {858569}', 'body of the message', ')')])
但是当我获取RFC822.SIZE 时,我得到了:
('OK', ['1 (RFC822.SIZE 847403)'])
我应该如何正确处理 data[0] 列表? 我可以相信,当它是一个元组列表时,元组正好有 3 个部分,而第二部分是有效负载?
也许你知道任何更好的 imap4 库?
【问题讨论】: