Вы должны быть в состоянии сделать это с помощью стандартных API.
Для начала вам нужно получить ссылку на Message
(или сообщения), которые вы хотите удалить, - если вы успешно их прочитали, вы уже можете это сделать. Теперь, нет никаких явных удаления() операций, но вы можете пометить сообщение как удаленные, как так:
message.setFlag(Flags.Flag.DELETED, true);
Это будет означать сообщение как удалённое (который, как правило, то, что операция удаления будет делать в клиенте рабочего стола IMAP). Для того, чтобы заставить удаленные сообщения, которые будут вычеркнуты, когда вы закончите с Folder
(ов), в которых они проживают, называют
folder.close(true);
где истинный флаг инструктирует сервер вычеркнуть все удаленные сообщения.
И вуаля! Клиент не должен больше видеть эти сообщения, когда подключается к серверу с любым клиентом IMAP.
EDIT:
Не забудьте открыть папку в режиме read_write иначе сообщения не будут фактически удалены с сервера.
folder.open(Folder.READ_WRITE);
См: http://java.sun.com/developer/onlineTraining/JavaMail/contents.html#JavaMailDeleting
Затем дать ему флаг в ответ используется. – Koekiebox
имя метода должно быть [setFlag] not [setFlags] [message.setFlag (Flags.Flag.DELETED, true);] –
@MohammedSayed Спасибо, ты прав. Я думал, что это может быть связано с изменением API в последней версии, но нет - это было просто неправильно уже почти четыре года! –