IMAP поиск адреса электронной почты в поле от - PullRequest
1 голос
/ 04 мая 2011

Я пытаюсь найти и отфильтровать письма в imap, используя imaplib из python.У меня довольно странная проблема с командой поиска, которая ищет адреса электронной почты в поле 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?Я отрываю свои волосы на этом.Есть идеи?

Редактировать Если уместно, я пытаюсь сделать это с сервером IMAP, предоставляемым MS Exchange (я думаю, 2007).

1 Ответ

7 голосов
/ 10 августа 2011

используйте это как ваш фильтр:

(HEADER FROM "shrikantsharat.k@gmail.com")
...