我正在使用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
,则它会显示在INBOX
,ALL MAILS
和IMPORTANT
文件夹中。因此,根据上面的代码,首先读取INBOX
邮件。如果我已经阅读了该文件夹中的邮件,我想避免在其他文件夹中阅读相同的邮件并获取其标签,例如INBOX
和IMPORTANT
,无论该邮件是否标记为已读或未读。我是javamail和imap的新手,无法知道如何让它工作。如果有任何可能的方法,请提供帮助
答案 0 :(得分:0)
它应该工作。尝试turning on session debugging查看服务器返回给您的确切内容。另外,尝试使用list(“%”)仅列出文件夹层次结构的单个级别。