使用IMAP获取邮件,获取已删除的邮件

时间:2015-05-07 07:45:34

标签: email javamail imap thunderbird

我有一个包含5000封邮件的邮件帐户,旧邮件帐户是4年。 我使用网络界面和thunderbird登录该帐户。 我在网络界面中删除了一封非常旧的邮件。然后我在没有重新登录的雷鸟上按下刷新(获取邮件)。 Thunderbird立即删除该消息。如何快速检测到雷鸟被删除的消息? 我必须在java(java mail api)中实现这样的机制,我想我必须获取所有邮件,并且必须在本地存储已经获取的邮件,然后我必须逐个比较每个邮件。 据我所知,消息id属性不安全,因此当我将一条消息移动到另一条消息时它可以被更改,它们不安全。最好的方法是使用存储在标头中的消息ID或使用自定义缓存机制,如下所述:

Mailing with IMAP: How to detect that a message has been moved from one folder to another?

因此,我们如何能够如此快速地通知已删除或移动的邮件? 如何检测雷鸟的新电子邮件?它存储最后存储的消息ID吗? 但是对于删除的旧邮件或移动的邮件,唯一的选择是将所有文件夹与本地存储进行比较,我错了吗?

我的想法,我将检查雷鸟调试模式,看看下层会发生什么。

1 个答案:

答案 0 :(得分:1)

删除邮件后,服务器会发送EXISTS响应,之后客户端可以通过比较{{FETCHUID FETCH来确定删除了哪些邮件。 1}}它对服务器上的消息的值。见https://tools.ietf.org/html/rfc3501#section-7.3.1