避免通过imap使用javamail读取重复的Gmail电子邮件

时间:2013-01-16 16:47:31

标签: java imap javamail gmail-imap

我正在使用javamail api通过imap读取我的gmail框以索引所有邮件。我想读取除默认文件夹以外的所有文件夹。以下代码段仅提供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,则它会显示在INBOXALL MAILSIMPORTANT文件夹中。因此,根据上面的代码,首先读取INBOX邮件。如果我已经阅读了该文件夹中的邮件,我想避免在其他文件夹中阅读相同的邮件并获取其标签,例如INBOXIMPORTANT,无论该邮件是否标记为已读或未读。我是javamail和imap的新手,无法知道如何让它工作。如果有任何可能的方法,请提供帮助

1 个答案:

答案 0 :(得分:0)

它应该工作。尝试turning on session debugging查看服务器返回给您的确切内容。另外,尝试使用list(“%”)仅列出文件夹层次结构的单个级别。

相关问题