从指定的电子邮件地址开始搜索或从指定的电子邮件地址开始搜索

2022-04-09 00:00:00 python imap imaplib

问题描述

我正在使用Gmail的SMTP服务器,我想通过IMAP搜索发送到某个地址或从某个地址接收的电子邮件。

这是我拥有的:

mail = imaplib.IMAP4_SSL('imap.gmail.com')

mail.login('user', 'pass')
mail.list()
mail.select("[Gmail]/All Mail")

status, email_ids = mail.search(None, 'TO "tech163@fusionswift.com" OR FROM "tech163@fusionswift.com"')

错误的最后一行是:imaplib.error: SEARCH command error: BAD ['Could not parse command']

不确定我应该如何在python的imaplib中执行这种OR语句。如果有人能迅速给我解释一下哪里出了问题,或者给我指个正确的方向,我将不胜感激。


解决方案

您收到的错误是从服务器生成的,因为它无法正确分析搜索查询。为了在RFC 3501之后生成有效的查询,第49页详细说明了它的结构。

例如,正确的搜索字符串应该是:

'(OR (TO "tech163@fusionswift.com") (FROM "tech163@fusionswift.com"))'

相关文章