Sergey đã đóng, nhưng theo mặc định, list()
của JavaMail thực hiện LIST "" %
, chỉ cung cấp cho bạn các thư mục cấp cao nhất. Gmail đặt các thư mục hệ thống của nó (Tất cả thư, thư nháp, thư đã gửi, thư rác, gắn dấu sao và thùng rác) trong thư mục không thể chọn [Gmail]
, vì vậy bạn thực sự cần phải thay đổi LIST "" *
. Nếu không, bạn sẽ chỉ nhận lại , [Gmail]
và nhãn của bạn.
Dưới đây là một số mẫu mã kết nối với GMail, lấy về danh sách thư mục, và in ra tên và thông điệp đếm cho mỗi thư mục \NoSelect
phi (tức là những người mà không phải là placeholders chỉ hệ thống phân cấp, giống như [Gmail]
):
Properties props = System.getProperties();
props.setProperty("mail.store.protocol", "imaps");
try {
Session session = Session.getDefaultInstance(props, null);
javax.mail.Store store = session.getStore("imaps");
store.connect("imap.gmail.com", "<username>@gmail.com", "<password>");
javax.mail.Folder[] folders = store.getDefaultFolder().list("*");
for (javax.mail.Folder folder : folders) {
if ((folder.getType() & javax.mail.Folder.HOLDS_MESSAGES) != 0) {
System.out.println(folder.getFullName() + ": " + folder.getMessageCount());
}
}
} catch (MessagingException e) {
e.printStackTrace();
}
Tại sao bạn chấp nhận câu trả lời không cung cấp cho bạn kết quả mà bạn đang tìm kiếm? – dkarp