2

我想知道 JavaMail API 中的消息编号是如何工作的。他们总是按时间排序吗?

我想要做的是避免重新获取 gmail 文件夹上的标题。假设我有一个包含 20,000 条消息的文件夹,我今天要处理它。明天,有 100 条新消息,我不希望再次获取所有 20,000 个标头。我可以问一下 msg nums 吗?20,001 - 20,100?我认为这在以后的消息添加到文件夹的正常情况下会起作用。但是,如果用户使用 Thunderbird 之类的客户端手动将较早时间段的内容插入到文件夹中,情况会怎样呢?

[s]

4

1 回答 1

3

它是控制消息编号如何工作的服务器。基本上在所有情况下,消息编号都对应于将消息添加到邮箱的顺序。

例如,在您的收件箱中,这是接收消息的顺序。您的电子邮件客户端可能会按照发送顺序显示消息,这可能完全不同。

消息可能会从列表中删除,但消息永远不会插入到现有消息之前。如果您正在寻找新消息,您必须处理现有消息被删除、更改消息编号的情况。

请参阅 JavaMail UIDFolder 接口,以及它所基于的 IMAP 规范。如果您跟踪您看到的最后一个 UID,您只需要查看 UID 大于该 UID 的消息。还有更多细节,但这只是一个开始。阅读文档,如果您有任何问题,请告诉我。

于 2013-01-23T22:13:20.737 回答