Bạn sẽ có thể thực hiện việc này thông qua API chuẩn.
Trước tiên, bạn cần tham chiếu đến Message
(hoặc thư) mà bạn muốn xóa - nếu bạn đọc thành công thì bạn đã có thể thực hiện việc này. Bây giờ, không có delete() hoạt động rõ ràng, nhưng bạn có thể đánh dấu thư là xóa như vậy:
message.setFlag(Flags.Flag.DELETED, true);
này sẽ đánh dấu các tin nhắn đã xóa (mà thường là những gì một hoạt động xóa sẽ làm trong một ứng dụng IMAP để bàn). Để buộc các tin nhắn đã xóa được xóa mà, khi bạn đã hoàn tất với Folder
(s), trong đó họ cư trú, gọi
folder.close(true);
nơi cờ đúng chỉ thị các máy chủ để xóa hẳn tất cả thư đã xóa.
Và thì đấy! Khách hàng sẽ không còn thấy các thông báo này khi anh kết nối với máy chủ với bất kỳ ứng dụng khách IMAP nào.
EDIT:
Đừng quên để mở thư mục trong chế độ READ_WRITE nếu không tin nhắn sẽ không thực sự bị xóa khỏi máy chủ.
folder.open(Folder.READ_WRITE);
Xem: http://java.sun.com/developer/onlineTraining/JavaMail/contents.html#JavaMailDeleting
Nguồn
2009-09-23 10:14:03
Sau đó cung cấp cho nó câu trả lời sử dụng lá cờ. – Koekiebox
tên phương thức nên là [setFlag] không phải [setFlags] [message.setFlag (Flags.Flag.DELETED, true);] –
@MohammedSayed Cảm ơn, bạn nói đúng. Tôi nghĩ điều này có thể là do thay đổi API trong một phiên bản gần đây, nhưng không - nó chỉ là sai trong gần bốn năm! –