Критерии поиска Imap - imaplib (python) - PullRequest
3 голосов
/ 12 июля 2011

Я использую imaplib для Python, и я столкнулся со странным поведением. Я не знаю, действительно ли это проблема / функция imap ou imaplib, поэтому я надеюсь, что кто-нибудь может дать мне немного света.

Во время моего проекта я делаю несколько поисков в своих почтовых ящиках. Представьте, что я выполняю поиск в imap по следующим критериям:

((начиная с "даты A") (до "даты B"))

Теперь, если у меня есть электронные письма с даты «A», imap (lib) делает ожидаемое: возвращает электронные письма с «даты A» и до «данных B». Прекрасный. Однако, если у меня НЕТ писем с даты «дата A», imap (lib) просто игнорирует это и возвращает все письма до даты «B», даже если они не относятся к «данным A»!

Это ожидаемое поведение для imap? Я так не думаю, это не имеет никакого смысла.

Мне действительно нужна возможность поиска по любому заданному периоду, и я надеюсь, что мне не нужно собирать поле перед каждым поиском, чтобы узнать дату последнего электронного письма.

Есть идеи? Я что-то здесь упускаю?

1 Ответ

6 голосов
/ 21 августа 2011
M.search(None, '(since "12-Jul-2010" before "12-Jul-2011")')

  SINCE 
     Messages whose internal date (disregarding time and timezone)
     is within or later than the specified date.

  BEFORE 
     Messages whose internal date (disregarding time and timezone)
     is earlier than the specified date.

  make sure that `SINCE < BEFORE`
...