我正在使用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)
之前抛出了一个错误(在我认为不适用的代码中)。我没有将其标记为答案,因为这不是真正的答案。 最佳答案
尝试在saveChanges
对象上调用Message
方法。 Javadoc here。