我正在尝试使用 python 的 imaplib 搜索和过滤我的 imap 邮件。我在搜索命令中遇到了一个非常奇怪的问题,在该FROM
字段中搜索电子邮件地址。我有以下脚本,
print('search with name')
status, results = con.search(None, '(FROM "Shrikant Sharat")')
if status == 'OK':
if results[0]:
mid = results[0].split()[0]
print('mail id', mid)
print(con.fetch(mid, '(UID BODY[HEADER.FIELDS (FROM)])'))
else:
print('No results yielded')
else:
print('unable to search', results)
print()
print('search with email')
status, results = con.search(None, '(FROM "shrikantsharat.k@gmail.com")')
if status == 'OK':
if results[0]:
mid = results[0].split()[0]
print('mail id', mid)
print(con.fetch(mid, '(UID BODY[HEADER.FIELDS (FROM)])'))
else:
print('No results yielded')
else:
print('unable to search', results)
为此,我得到以下结果,
search with name
mail id 2155
('OK', [('2155 (UID 5340 BODY[HEADER.FIELDS (FROM)] {54}', 'From: Shrikant Sharat <shrikantsharat.k@gmail.com>\r\n\r\n'), ' FLAGS (\\Seen))'])
search with email
No results yielded
为什么第二次搜索失败?From
如先前搜索所示,电子邮件地址出现在该字段中。第二次搜索应该匹配到这封邮件吧?
这不是在From
字段中搜索电子邮件地址的方式吗?我在这个上把头发拉开。有任何想法吗?
编辑如果相关,我正在尝试使用 MS Exchange 公开的 IMAP 服务器(我认为是 2007 年)。