我正在使用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

10-04 11:40