首页 > 解决方案 > 为什么 imaplib.fetch RFC822 响应格式如此奇怪

问题描述

当我使用imaplib

rv, data = imap.fetch("1", '(RFC822)')

我得到以下形状的响应

[(b'1 (RFC822 {35661}',
  b'Delivered-To: ... here goes the message' ),
  b')']

这里的理由是什么?为什么打开(b'1 (RFC822 {35661}'是第一个元组的一部分,但关闭b')'是一个单独的元素?

标签: pythonimaplib

解决方案


我能想到的解释只有一种。b')'如果存在,关闭还会显示任何标志。

例如:(b' FLAGS (\\Seen))'来自我收到的一封电子邮件)。

这样的标志要么:

  1. 显然不是来自消息源,因此单独排列,或
  2. 在必须阅读整个消息源之前,可以轻松提取以决定操作。

这是我最好的猜测,我可能离基地很远。这绝对是奇怪的。


推荐阅读