IMAP: поиск сообщений с UID больше X (или вообще после моего последнего поиска) - PullRequest
16 голосов
/ 05 февраля 2012

Я пишу скрипт для анализа своего почтового ящика и хочу периодически проверять наличие новых сообщений. Критерии поиска будут следующими: дайте мне UID для всех писем с UID больше X, где X - это UID последнего письма, которое я обработал.

Или, в более общем смысле, я ищу способ видеть сообщения только после моего последнего поиска.

Обратите внимание, что я не ищу видимые / невидимые сообщения; скрипт открывает почтовый ящик только для чтения, и я бы хотел, чтобы он не мешал моим флагам и т. д.

Я знаю, что могу указать дату в поиске по IMAP, но детализация по дням, поэтому не совсем то, что мне нужно.

Я начинаю с Gmail в качестве сервера IMAP, но хотел бы в будущем поддерживать универсальные серверы IMAP.

Есть ли способ поиска писем с UID, превышающим X? Или другой способ указать все сообщения, начиная с сообщения X?

Ответы [ 2 ]

19 голосов
/ 05 февраля 2012

Вы можете использовать ПОИСК IMAP для UID. Предполагая, что ваш последний полученный UID - 1999, я думаю, вы бы сделали:

SEARCH UID 2000:*

1 голос
/ 27 июня 2013

Почему бы не использовать IMAP IDLE для этого?

с IMAP IDLE, сервер предупреждает вас каждый раз, когда приходит новое сообщение

...