编程语言
首页 > 编程语言> > IMAP:(JavaMail)UIDVALIDTY值始终会更改某些文件夹

IMAP:(JavaMail)UIDVALIDTY值始终会更改某些文件夹

作者:互联网

我们已经使用JavaMail api实现了一个邮件客户端,该客户端连接到邮件服务器以处理IMAP协议中的消息.该实现在许多客户和邮件服务器上都能正常工作,但是我们有一个客户遇到了问题,

UIDVALIDTY:为了确定是否可以依赖文件夹中邮件的UID值,我们存储每个文件夹的最新UIDVALIDTY.然后在下一个过程中,我们将最近存储的值与当前的值进行比较.如果它们相同,我们可以依靠UID. IMAP规范要求服务器尽最大努力避免对此值进行不必要的更改. (邮件服务器崩溃,重启,升级等除外)

在此特定的客户邮件服务器上,某些文件夹的UIDVALIDTY值每次都会更改.测试帐户有300个文件夹,其中15个总是相同的特定定义文件夹,并且始终具有不同的UIDVALIDTY值.

可能是什么原因呢?有邮件服务器设置吗?我认为这超出了Java邮件api的范围,它与邮件服务器有关.客户说我们的邮件服务器没有问题,我们可以在Web界面上使用它.我如何说服并说服客户他们的邮件服务器存在问题?

解决方法:

一些邮箱格式没有存储UID的空间,我认为还有两个仍在使用的服务器支持这种格式. Dovecot特别支持多种存储格式,其中包括IIRC,其中一种不支持UID.

如果服务器必须这样做,它将为send you a UIDNOTSTICKY response code when you open the mailbox,从那时起,它将凭空产生新的UIDS.您可能会检测到UIDNOTSTICKY并拒绝玩,或者只是将它视为测试有效性更改处理的机会.

标签:email,javamail,imap,java
来源: https://codeday.me/bug/20191111/2020443.html