如何使用rfc822msgid搜索电子邮件:

时间:2019-01-01 18:33:06

标签: python gmail imaplib

每当尝试使用带有python2和imaplib的rfc822msgid搜索收件箱时,都会收到错误消息。以下是我用来查找特定电子邮件的代码示例...

"rfc822msgid:{msg_id}".format(msg_id=searchtool).replace("\n", "")

变量searchtool是我要查找的电子邮件中正确的消息ID。通过转到google的gmail网页并在搜索框中键入完全相同的命令,可以从搜索查询中获取我要查找的电子邮件,从而验证了这一点。但是,当我尝试通过python2中的imaplib执行此操作时,出现此错误:

raise self.error('%s command error: %s %s' % (name, typ, data))
imaplib.error: SEARCH command error: BAD ['Could not parse command']

到目前为止,我已经尝试在整个搜索查询和message-id周围加上双引号,但仍然出现完全相同的错误。如果你们中的一个可以请告诉我如何解决此问题,将不胜感激。我在Google上花了2天的时间,试图弄清为什么会出现此错误,但我希望你们中的一个人能够为我提供帮助。

1 个答案:

答案 0 :(得分:1)

这是Gmail基于网络的搜索支持的一种语法,而不是IMAP支持的一种语法。

使用imaplib通过Message-Id搜索的方式看起来像

typ, result = imap4obj.search(None, '(HEADER Message-ID "{}")'.format(msgid))

The example in the documentation详细介绍了如何使用结果。