В тестовой папке IMAP было создано 5 сообщений и потом 3 сообщение удалено.
Таким образом UID оставшихся сообщений [1, 2, 4, 5].
Нужно получить все сообщения начиная с данного UID. Вот код:
mail = imaplib.IMAP4_SSL(SERVER)
mail.login(LOGIN, PASSWORD)
mail.select('INBOX.Test.Subtest', readonly=True)
for i in range(5):
resp, data = mail.uid('search', '%d:*' % (i+1))
print i+1, resp, data
вывод:
1 OK ['1 2 4 5']
2 OK ['2 4 5']
3 OK ['4 5']
4 OK ['5']
5 OK ['5']
Таким образом начальный параметр воспринимается не как UID, а как последовательный индекс. Строка «4 OK ['5']» должна быть «4 OK ['4 5']».
Это кривая реализация IMAP или я чего-то не понимаю?