【发布时间】:2015-02-18 08:33:52
【问题描述】:
我有一个带有MessageCountListener 的IMAPFolder,用于监听从文件夹中添加/删除的消息。在我的messageRemoved(MessageCountEvent ...) 中,我需要获取刚刚删除的消息的 UID,以便我可以在本地缓存中反映这些更改。
问题是,如果我尝试对已删除的消息执行 IMAPFolder.getUID(Message ...),我会得到
javax.mail.MessageRemovedException
at com.sun.mail.imap.IMAPMessage.checkExpunged(IMAPMessage.java:220)
at com.sun.mail.imap.IMAPFolder.getUID(IMAPFolder.java:1949)
at (...).IdleWatcher$1.messagesRemoved(IdleWatcher.java:64)
at javax.mail.event.MessageCountEvent.dispatch(MessageCountEvent.java:152)
at javax.mail.EventQueue.run(EventQueue.java:134)
at java.lang.Thread.run(Thread.java:856)
如何确定已删除邮件的 UID?我可以浏览所有缓存的消息并检查哪些消息仍然存在,但是这太耗费资源,无法在每次删除消息时执行。
【问题讨论】:
标签: java jakarta-mail imap