Email 使用Javamail API的消息编号

Email 使用Javamail API的消息编号,email,imap,jakarta-mail,Email,Imap,Jakarta Mail,我想知道JavaMail API中的消息编号是如何工作的。 它们总是按时间排序吗 我想做的是避免在gmail文件夹中重新蚀刻标题。 假设我有一个包含20000条消息的文件夹,我今天处理它。 明天,会有100条新消息,我宁愿不把它们全部取出来 又是两万个头球。我可以要味精nums吗。20,001 - 20,100? 我假设这在添加后续消息的正常情况下会起作用 到文件夹。但是,如果用户手动插入某些内容,情况又如何呢 使用像Thunderbird这样的客户机从较早的时间段进入文件夹 [s] 是服务器控

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

我想做的是避免在gmail文件夹中重新蚀刻标题。 假设我有一个包含20000条消息的文件夹,我今天处理它。 明天,会有100条新消息,我宁愿不把它们全部取出来 又是两万个头球。我可以要味精nums吗。20,001 - 20,100? 我假设这在添加后续消息的正常情况下会起作用 到文件夹。但是,如果用户手动插入某些内容,情况又如何呢 使用像Thunderbird这样的客户机从较早的时间段进入文件夹


[s]

是服务器控制消息编号的工作方式。基本上在所有情况下,邮件编号都与邮件添加到邮箱的顺序相对应

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

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


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

谢谢,比尔。这很有效。此外,我发现文件夹的消息编号也会增加(即,即使具有较早时间戳的消息被添加到Gmail文件夹中,它也会稍后出现在folder.getMessages()中)。但我会依赖UID。如果你有10条信息,再加上一条,它将是11条。如果随后删除前5条消息并添加5条新消息,则消息#11是一条完全不同的消息。这就是为什么你需要使用UID。