【发布时间】:2017-04-05 03:38:34
【问题描述】:
我正在尝试查找与特定 FROM 地址匹配的邮件。我查看了this answer,但它对我不起作用。
以下是相关代码:
import imaplib
conn = imaplib.IMAP4_SSL(IMAPserver)
conn.login(IMAPuserName, IMAPpassword)
retVal, data = conn.select("INBOX")
if retVal != "OK":
<PRINT SOME ERROR MESSAGE>
sys.exit(1)
所有这些都有效。以下是搜索命令的一些变体不起作用:
retVal, data = conn.search(None, 'UNSEEN HEADER FROM "foo@example.com"')
retVal, data = conn.search(None, 'UNSEEN FROM "foo@example.com"')
retVal, data = conn.search(None, 'FROM "foo@example.com"')
retVal, data = conn.search(None, 'HEADER FROM "foo@example.com"')
所有这些都会导致如下错误:
imaplib.error: SEARCH command error: BAD ['Error in IMAP command SEARCH:
Unexpected string as search key: FROM "foo@example.com"']
我已经参考了IMAP v4 RFC 的相关部分,但我无法弄清楚我到底做错了什么。任何帮助将不胜感激。
【问题讨论】:
-
我认为您的服务器可能有糟糕/未实现的搜索。一些非品牌服务器就是不支持字符串搜索。 (例如,mail.ru 似乎就是其中之一)。您尝试连接到什么服务和/或服务器软件?这些命令在我看来没问题。
-
谢谢,@Max。这种可能性确实发生在我身上,但有点难以验证。这是一个私人公司电子邮件服务器,我没有太多控制或洞察力。
标签: python python-2.7 imaplib