Я понимаю, что существует ряд библиотек для доступа к IMAP из Java, Python и т. д. Но то, что я хочу сделать, очень специфично и противоречит большинству примеров imap.
Легкие части:
- Учитывая сервер IMAP, логин и конкретное имя папки
- Уничтожить все сообщения в этой папке (или уничтожить папку, если это проще или эффективнее?)
Нетипичные части:
- Выполнять удаление после каждого N удаления
- Включите некоторую логику повторных попыток и размера пакета, чтобы загруженные серверы — даже удаление и удаление 100 сообщений за сеанс было бы полезным.
- НЕ загружайте все заголовки!
Последний пункт - проблема. Каждый почтовый клиент, который я пробовал, задыхается при загрузке 20 000 заголовков электронной почты, которые мне не нужно видеть.
Для сценариев POP3 я только что дал последовательные идентификаторы, 1, 2, 3...
Но каждый пример IMAP, который я видел, использует какое-то поле, полученное из заголовков. Так может быть, для удаления сообщений IMAP требуется идентификатор, о котором вы не можете догадаться? (и можно получить, только выполнив запрос?)
Если мне действительно нужно было получить заголовки, можно ли сделать это хотя бы максимально компактным? Или позвольте мне сделать только 100 за раз?
В качестве альтернативы я пытался удалить всю папку через пользовательский интерфейс почтового клиента, но это, похоже, не работает. Я думаю, что он сначала пытается переместить все заголовки в корзину, и у него это не получается, поэтому никогда не доходит до части удаления. Поэтому я не уверен, что удаление папки на самом деле более эффективно, чем удаление ее содержимого.
Любые мысли оценены. Обычно я работаю на Java или Python, но я гибкий. Я думаю, что это проблема протокола, а не проблема библиотеки.