我正在编写一个从IMAP服务器同步电子邮件(仅限收件箱)的应用程序。为此,我使用javamail,我有性能问题。当我想刷新我的电子邮件时,我会收到收件箱中的所有邮件,这需要几分钟时间。 :( 所以我想只获取自上次刷新电子邮件以来修改过的邮件。我找到了如何获取自收到日期以来收到或发送的邮件,但我想要做的是略有不同。可以更改非常旧的消息的状态(未读读取)。在这种情况下,修改日期是最近的,但收到或发送日期是旧的。
有什么想法吗?
此致 昆汀
答案 0 :(得分:0)
您无法更改旧邮件的内容,但可以更改标记。您可以获取所有消息的所有标志,并将它们与标志的缓存副本进行比较。 (IMAP扩展有助于此,但许多IMAP服务器不支持它们,JavaMail不支持它们。)
使用Folder.fetch方法在一个操作中获取所有标志,然后迭代Message对象并比较标志。