LINUX.ORG.RU

IMAP работа с UID

 ,


0

1

В тестовой папке 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 или я чего-то не понимаю?

★★★★

Последнее исправление: alexru (всего исправлений: 2)

Решение:

resp, data = mail.uid('search', 'ALL', 'UID', '%d:*' % (i+1))
alexru ★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.