我正在使用 python 通过 IMAP 连接到 gmail。
当我获取一堆 uid 时,结果有时会包含一些奇怪的附加到最后。
这个错误似乎是间歇性的,并在上周左右的某个时候开始出现。
例如我做这样的抓取:
>>>import imaplib
>>>conn = imaplib.IMAP4_SSL('imap.gmail.com')
>>># authenticate etc
>>>conn.uid('fetch', '12,13', '(X-GM-THRID)')
我有时会得到这样的结果:
>>>['1 (X-GM-THRID 123123123123 UID 12)',
'2 (X-GM-THRID 123123123123 UID 13)',
'365022 (UID 601722 FLAGS (\\Seen))']
(为了可读性添加了换行符,id 与原始 ID 不同,通常我获取的远远超过两个。)
这很奇怪。关于额外的消息,我根本没有要求任何东西。有时它在那里,有时不在那里。无论我获取什么字段,额外的结果(我只见过一两个)从不包含它们,只包含 FLAGS 信息。
知道为什么会发生这种情况吗?
最佳答案
本周早些时候在 IMAP 协议(protocol)邮件列表中发布了以下内容:
“从昨天 [10 月 7 日星期一] 开始,Gmail 现在支持在我们报告新的/删除的邮件的任何地方报告标志更改(即协议(protocol)允许的大多数地方,但肯定是在 IDLE 期间)。它只为 gmail 启用。 com 用户,假设我们没有发现任何问题,Google Apps 用户将在一周左右后跟进。”
但是,新功能显然存在问题,因为今天他们说它正在回滚:
“我们看到一些程序没有预期额外的 FETCH 响应的报告,我们在周一推出了这些响应。我们很快就会回滚,因为一个非常受欢迎的客户端的旧版本有问题(尽管我们不知道这部分的事情)。”
-瑞克
关于python - Gmail IMAP 有时返回错误的提取结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26262472/