【问题标题】:java mail api, imap folder UIDNEXT is always -1java邮件api,imap文件夹UIDNEXT总是-1
【发布时间】:2015-07-21 20:26:46
【问题描述】:

嗨,我使用 java api 从 imap 文件夹中获取邮件,我可以获取标题等,但 UIDNEXT 始终为 -1,但下一封邮件的值类似于 100。

所有邮件服务器都不支持 UIDNEXT 吗?

UIDFolder ufolder = (UIDFolder) folder;
folder.open(Folder.READ_WRITE);
IMAPFolder iFolder = (IMAPFolder) folder;

int totalMessages = iFolder.getMessageCount();
int unreadMessages = iFolder.getUnreadMessageCount();
int newMessages = iFolder.getNewMessageCount();
int deletedMessages = iFolder.getDeletedMessageCount();
boolean bNew = iFolder.hasNewMessages();
long uidnext = iFolder.getUIDNext();

我得到了除 UIDNEXT 以外的其他参数的正确值,但 uidnext 总是返回 -1?

【问题讨论】:

  • UIDNEXT 得到普遍支持。不记得上次看到有人不支持是什么时候了。
  • Courier IMAP 服务器在打开时不返回 uidnext。
  • 并非所有电子邮件服务器都实现 uidnext。 (我有integrated a couple

标签: java email imap uid


【解决方案1】:

查看https://javamail.java.net/nonav/docs/api/com/sun/mail/imap/IMAPFolder.html#getUIDNext() 的文档,这取决于您的服务器:

实现 RFC2060 的服务器在打开文件夹时可能不会返回此值。实现 RFC3501 的服务器应在打开文件夹时返回此值。

在调用 getUIDNext() 之前尝试关闭文件夹。

【讨论】:

    猜你喜欢
    • 2018-01-12
    • 2015-08-18
    • 1970-01-01
    • 2017-08-30
    • 2012-10-29
    • 2016-10-31
    • 2013-11-22
    • 2012-06-02
    • 2018-03-03
    相关资源
    最近更新 更多