AE.Net.Mail — отслеживание IMAP UID для получения последних электронных писем

Я успешно использую библиотеку AE.Net.Mail для извлечения сообщений из папки imap. Сейчас я пытаюсь создать часть, которая позволит мне проверять только сообщения, которые я еще не получил в прошлом. Если я сохраняю UID последнего сообщения, которое я извлекаю (для определенного почтового ящика), я немного запутался, как его использовать для:

-Запрос любого сообщения новее, чем UID

-Запросить не более x сообщений (например, 100)

библиотека запрашивает, которые я отправляю в «начальный» и «конечный» uid, но я бы предпочел просто отправить «начальный» uid, а затем ограничить количество возвращаемых сообщений или ничего не устанавливать для конечного UID на случай, если я хочу получить все после начала.

Я смотрю на это неправильно?


person Brady Moritz    schedule 17.08.2012    source источник


Ответы (1)


IMAP позволяет отправлять '*' в качестве конечного UID. Надеюсь, ваша библиотека поддерживает это.

Необработанная команда выглядит так: UID FETCH 739:* ([items])

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

person Max    schedule 17.08.2012
comment
Как ни странно, если я запрашиваю uid за пределами доступного диапазона, кажется, что возвращается одно сообщение, являющееся последним (наивысший доступный uid). Это похоже на стандартное поведение? - person Brady Moritz; 19.08.2012
comment
Нет, не совсем. Однако не все UID должны существовать, поэтому, возможно, в вашем диапазоне есть только одно сообщение? - person Max; 20.08.2012
comment
нет, я бы запросил начальный UID, скажем, 13.. и он вернул бы только одно сообщение с uid 12. Я не знаю, является ли это стандартным или просто что-то делает gmail. Я предполагаю, что это говорит о том, что ваш uid слишком высок, вот самое высокое, что у нас есть. - person Brady Moritz; 21.08.2012