我正在使用JavaMail访问Exchange邮箱(对我工作的公司而言是私有的)。我的适用代码如下:
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)
之前抛出了一个错误(在我认为不适用的代码中)。我不是把它标记为答案,因为这不是一个真正的答案。