Ruby / IMAP получает сообщения, начиная с последнего сохраненного uid сообщения - PullRequest
1 голос
/ 30 мая 2011

Я пытаюсь получить новые сообщения, начиная с последнего сохраненного идентификатора сообщения в папке.

Вот мой код:

self.imap_connection.examine(folder)
imap_query = "UID SEARCH #{last_uid}:*"
messages = self.imap_connection.search(imap_query)

Единственный ответ, который я получаюс сервера IMAP: Ошибка в команде IMAP, полученной сервером.

Итак, кто-нибудь знает правильный "синтаксис" для библиотеки ruby ​​imap для получения идентификаторов uid?

С уважением, Алекс

Ответы [ 2 ]

2 голосов
/ 09 октября 2015

Получение всех сообщений после определенного последнего извлеченного UID работает для меня.

imap_connection.uid_search (["UID", "# {last_fetched_uid + 1}: # {MAX_UID}"])

0 голосов
/ 31 мая 2011

Решение получает все сообщения из папки по ее uid и сохраняет ее seqno (это поле imap):

imap_connection.uid_search("ALL") 

Для поиска новых писем ищите по последнему сохраненному seqno:

imap_connection.uid_search("#{seqno.to_i}:*")

Поиск по последнему сохраненному uid у меня не работал, поэтому я использовал последние сохраненные seqno и вуаля.

...