IMAP: поиск сообщений с UID больше X (или, как правило, после моего последнего поиска)

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

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

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

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

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

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

Ответы

Ответ 1

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

SEARCH UID 2000:*

Ответ 2

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

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