Bunu standart API'ler aracılığıyla yapabilmeniz gerekir.
İlk önce silmek istediğiniz Message
(veya iletileri) referansını almanız gerekir; eğer başarılı bir şekilde okuyorsanız, bunu zaten yapabilirsiniz. Şimdi, hiçbir açık silme() işlemi, ama şöyle silinmiş olarak bir ileti işaretleyebilirsiniz: silindi olarak
message.setFlag(Flags.Flag.DELETED, true);
Bu bir silme işlemi bir masaüstü IMAP istemcisi ne yapacağını tipik olan (mesaj damgasını vuracak). Eğer ikamet ettikleri Folder
(ler) ile bittiğinde silinen mesajları zorlamak amacıyla, tamamen silinmek üzere, gerçek bayrak tüm silinmiş iletileri kalıcı olarak silmek sunucuyu talimatını
folder.close(true);
diyoruz.
Ve voila! İstemci, artık herhangi bir IMAP istemcisiyle sunucuya bağlandığında bu iletileri görmemelidir.
DÜZENLEME:
aksi iletilerin gerçekten sunucudan silinmez READ_WRITE modunda klasörü açmak için ihmal etmeyin.
folder.open(Folder.READ_WRITE);
Bkz: http://java.sun.com/developer/onlineTraining/JavaMail/contents.html#JavaMailDeleting
Sonra o cevap kullanılan bayrak verir. – Koekiebox
yöntem adı [setFlag] olmalıdır [setFlags] [message.setFlag (Flags.Flag.DELETED, true);] –
@MohammedSayed Doğru, teşekkürler. Bunun yeni bir sürümde bir API değişikliğine düşebileceğini düşündüm, fakat hayır - neredeyse dört yıldır yanılmışım! –