Ответ 1
Вы должны сделать это с помощью стандартных API.
Сначала вам нужно получить ссылку на Message
(или сообщения), которые вы хотите удалить, - если вы успешно их читаете, вы уже можете это сделать. Теперь нет явной операции delete(), но вы можете пометить сообщение как удаленное так:
message.setFlag(Flags.Flag.DELETED, true);
Отметьте это сообщение как удаленное (что обычно делает операция удаления в клиентском IMAP-клиенте). Чтобы принудительно удалить удаленные сообщения, когда вы закончите с Folder
(s), в которых они находятся, вызовите
folder.close(true);
где истинный флаг указывает серверу на удаление всех удаленных сообщений.
И вуаля! Клиент не должен больше видеть эти сообщения, когда он подключается к серверу с любым клиентом IMAP.
EDIT:
Не забудьте открыть папку в режиме READ_WRITE, иначе сообщения на самом деле не будут удалены с сервера.
folder.open(Folder.READ_WRITE);
Смотрите: http://java.sun.com/developer/onlineTraining/JavaMail/contents.html#JavaMailDeleting