2011-08-18 43 views
6

Tôi đã sử dụng thư java để tự động hóa các hoạt động Gmail. Một trong những hoạt động là để xoá thư và tôi sử dụng sau cho nó -Xóa thư vĩnh viễn bằng cách sử dụng java

message.setFlag(Flags.Flag.DELETED, true); 

nhưng làm như vậy chỉ đẩy mail của tôi để thư mục thư rác.

Tôi tự hỏi nếu có cách xóa thư vĩnh viễn thay vì xóa thư khỏi "hộp thư đến" trước rồi tìm kiếm thư trong thư mục "spam" và xóa chúng.

+0

Có thể là một câu hỏi khác nhưng tôi không thể sử dụng thư mục spam = store.getFolder ("[Gmail]/Spam"); để nhận thư từ thư mục spam .... Tên thư mục "thư rác" là gì – Tarun

+5

Tôi hy vọng bài đăng sau có câu trả lời [http://stackoverflow.com/questions/1464706/delete-email-on-server- sử dụng-javax-m] [1] [1]: http://stackoverflow.com/questions/1464706/delete-email-on-server-using-javax-mail –

Trả lời

4

Theo http://mail.google.com/support/bin/answer.py?answer=78755:

Nếu bạn muốn xóa một tin nhắn từ tất cả các thư mục, di chuyển nó đến [Gmail]/thư mục Trash.

Nếu bạn xóa thư khỏi [Gmail]/Spam hoặc [Gmail]/Thùng rác, thư sẽ bị xóa vĩnh viễn.

Tuy nhiên, trang đó không đưa ra bất kỳ dấu hiệu nào cho thấy cách tiếp cận của bạn sẽ chuyển thư vào thư mục spam; và ngụ ý rằng bạn nên xem thư mục có tên [Gmail]/Spam; vì vậy có lẽ nó không áp dụng cho tình huống của bạn, bằng cách nào đó? Tôi nghĩ bạn sẽ phải thử cách tiếp cận của nó, và xem liệu nó có phù hợp với bạn không!

3

Bạn nói rằng bạn đang cố gắng

message.setFlag(Flags.Flag.DELETED, true); 

bạn đã cố gắng folder.close(true); này sẽ xóa hẳn tất cả các thông điệp với cờ xóa.

+0

Nó không cho Gmail ; thư sẽ vẫn nằm trong lưu trữ (Tất cả thư) sau đó. – Arjan

0

Đặt cờ thành Flags.Flag.DELETED chỉ đánh dấu email là đã xóa.

Bạn cần gọi số

folder.expunge();

để thực sự xóa những email được đánh dấu là đã xóa.

Các vấn đề liên quan