1
我正在使用JavaMail訪問Exchange郵箱(對於我工作的公司是私有的)。我的適用代碼如下:無法使用JavaMail刪除郵件
Store store = Session.getDefaultInstance(props, null).getStore("imap");
store.connect(...stuff...);
Folder inbox = store.getFolder("INBOX");
inbox.open(Folder.READ_WRITE);
int numOfMessages = inbox.getMessageCount();
for (int i = 1; i<=numOfMessages; i++){
Message message = inbox.getMessage(i);
message.setFlag(Flags.Flag.DELETED, true);
System.out.println(message.getSubject());
}
inbox.close(true);
store.close();
它正在正確訪問和打印出所有消息名稱。但是,每次運行都會反覆打印相同的名稱,表明它們實際上並未被刪除。
分辨率:我發現我是在inbox.close(true)
之前拋出一個錯誤(在代碼中,我認爲不適用)。我並不把它作爲答案,因爲這不是一個真正的答案。
我得到一個「javax.mail.IllegalWriteException:IMAPMessage是隻讀的......」,在做了研究後,它看起來像saveChanges()不是與IMAP交互的方式 –
對不起,我沒有看到這是imap。 Imap消息是read_only。 –
啊,我知道我做錯了什麼。感謝您的幫助......這是我的代碼中的邏輯錯誤。 –