Python IMAP从指定的电子邮件地址搜索

Tec*_*163 7 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"')
Run Code Online (Sandbox Code Playgroud)

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

不知道我应该如何在python中做那种OR语句imaplib.如果有人能够快速解释错误或指出我正确的方向,那将非常感激.

San*_*dri 18

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

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

'(OR (TO "tech163@fusionswift.com") (FROM "tech163@fusionswift.com"))'
Run Code Online (Sandbox Code Playgroud)