Казки на ніч кілька миттєвостей javamail gmail

Казки на ніч кілька миттєвостей javamail gmail

І ось прийшов час Java. Першим моїм завданням було написати модуль обробляє вхідні листи з потрібного поштової скриньки, і в разі потреби відправляв відповідь. Погуглити пару хвилин відразу було знайдено основа для мого модуля - JavaMail. Трохи магії присутній і в цій збірці.

Через деякий час у мене були методи для роботи з поштою.

Для відправки пошти:
Для отримання пошти:
В змінної messages буду утримуватися список нових листів. Все начебто ясно і зрозуміло, робимо наступний крок.

Як відповісти на лист?

Почитавши FAQ по JavaMail стало зрозуміло що рекомендують скористатися методів Message.reply (). І ось тут почала даватися взнаки магія JavaMail.

Як видалити повідомлення використовуючи POP протокол?

Як отримати доступ до папок "Уся пошта", "Спам", і т.д.

Тут виникло якесь розчарування, тому що Gmail не дає доступ через smtp протокол до таких папок. Для доступу в такі папки необхідно скористатися протоколом imap (провайдер "imaps") і отримати папку із зазначенням потрібного імені. наприклад:


Радує в роботі з JavaMail то, що FAQ написаний дуже добре і якісно. У 80% випадків рішення дрібних проблем можна було знайти в ньому.
Модуль написаний, завдання виконано :).

Як видалити повідомлення використовуючи POP протокол?
Все зробив як зазначено тут
message.setFlag (Flag.DELETED, true);
folder.close (true);
Тоді при запиті через POP3 листів немає (ніби пішли) але якщо зайти на сайт gmail.com там все нібито "віддалені" листи видно в папці "Вхідні". Чому листи видаляються для запиту POP3 але залишаються фізично на поштовому сервері?
Як видаляти листи повністю з поштового сервера.

Швидше за все це особливість поведінки Gmail. Думаю, проблему можна вирішити через imap за допомогою переміщення листів між теками.