【问题标题】:Avoid reading duplicate gmail emails with javamail through imap避免通过 imap 使用 javamail 阅读重复的 gmail 电子邮件
【发布时间】:2013-01-18 12:58:46
【问题描述】:

我正在使用 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 都是新手,不知道如何让它工作。如果有任何可能的方法,请帮忙

【问题讨论】:

标签: java imap jakarta-mail gmail-imap


【解决方案1】:

它应该工作。试试turning on session debugging 看看服务器到底返回给你什么。此外,请尝试使用 list("%") 仅列出文件夹层次结构的单个级别。

【讨论】:

  • 糟糕,它的工作早早地打破了循环。有什么想法可以为我的问题的第二部分做些什么,这对我来说更重要,即只阅读多个标签邮件并获取分配给该邮件的所有标签,这样任何重复的数据都不会被索引。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-04-19
  • 1970-01-01
  • 1970-01-01
  • 2012-03-05
  • 2011-07-19
  • 1970-01-01
  • 2019-02-23
相关资源
最近更新 更多