Sie sollten dies über die Standard-APIs tun können.
Zuerst müssen Sie einen Verweis auf die Message
(oder Nachrichten), die Sie löschen möchten - wenn Sie sie erfolgreich lesen, dann können Sie dies bereits tun. Jetzt gibt es keinen expliziten delete() Betrieb, aber Sie können eine Nachricht markieren, wie wie so gelöscht:
message.setFlag(Flags.Flag.DELETED, true);
Dies wird die Nachricht markiert als gelöscht (die in der Regel ist das, was ein Löschvorgang in einem Desktop-IMAP-Client tun). Um die gelöschten Nachrichten zu zwingen, ausgelöscht werden, wenn Sie mit dem Folder
fertig sind (s), in dem sie ihren Wohnsitz haben, rufen Sie
folder.close(true);
wo die wahre Flagge den Server anweist, alle gelöschten Nachrichten zu tilgen.
Und voila! Der Client sollte diese Nachrichten nicht mehr sehen, wenn er sich mit einem IMAP-Client mit dem Server verbindet.
EDIT:
Vergessen Sie nicht, den Ordner in READ_WRITE Modus zu öffnen, sonst werden die Nachrichten nicht tatsächlich vom Server gelöscht werden.
folder.open(Folder.READ_WRITE);
See: http://java.sun.com/developer/onlineTraining/JavaMail/contents.html#JavaMailDeleting
es dann geben die Antwort verwendet Flagge. – Koekiebox
Methodenname sollte [setFlag] nicht sein [setFlags] [message.setFlag (Flags.Flag.DELETED, wahr);] –
@MohammedSayed Danke, Sie haben Recht. Ich dachte, dies könnte auf eine API-Änderung in einer aktuellen Version zurückzuführen sein, aber nein - es ist nur seit fast vier Jahren falsch! –