IMAP在from字段中搜索电子邮件地址

Shr*_*rat 1 python imap exchange-server imaplib

我正在尝试使用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)
Run Code Online (Sandbox Code Playgroud)

为此,我得到以下结果,

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
Run Code Online (Sandbox Code Playgroud)

为什么第二次搜索失败?电子邮件地址出现在From字段中,如上一次搜索所示.第二次搜索应该匹配这封邮件吗?

这不是在From现场搜索电子邮件地址的方法吗?我正在把这头发拉开.有任何想法吗?

编辑如果相关,我正在尝试使用MS Exchange公开的IMAP服务器(2007年,我认为).

小智 7

使用它作为你的过滤器:

(HEADER FROM "shrikantsharat.k@gmail.com")
Run Code Online (Sandbox Code Playgroud)