0

我正在使用 javamail api 来阅读我的 gmail 邮箱imap以索引所有邮件。我想阅读除默认文件夹以外的所有文件夹。下面的代码段只给出了 gmail 的默认文件夹。

javax.mail.Folder[] folders = store.getDefaultFolder().list("*");
for (javax.mail.Folder fold : folders) {
    if ((fold.getType() & javax.mail.Folder.HOLDS_MESSAGES) != 0) {
       System.out.println(fold.getFullName() + ": " + fold.getMessageCount());
    }
}

我有几个标签在我使用上面的代码时没有显示。有什么方法可以让我获得所有用户定义的标签,而不是gmail的默认文件夹。如果任何电子邮件具有多个标签并获取该邮件的标签,还有什么方法可以让我获得。这是为了避免同一封邮件被阅读两次。因为如果有任何邮件被标记为,important那么它就会进入INBOX,ALL MAILSIMPORTANT文件夹。所以根据上面的代码,INBOX邮件首先被读取。如果我已经阅读了该文件夹中的邮件,我想避免阅读其他文件夹中的相同邮件并获取它的标签,例如INBOXIMPORTANT无论该邮件被标记为已读还是未读。我对 javamail 和 imap 都是新手,不知道如何让它工作。如果有任何可能的方法,请帮助

4

1 回答 1

0

它应该工作。尝试打开会话调试以查看服务器返回给您的确切内容。此外,尝试使用 list("%") 仅列出文件夹层次结构的单个级别。

于 2013-01-16T20:56:43.073 回答