如何仅获取从Java中特定帐户发送或接收的电子邮件

时间:2018-07-17 17:45:53

标签: java email javamail

我正在寻找一种解决方案,例如是否必须从我的邮箱(在本例中为Gmail)中搜索某些发送到电子邮件ID或从该电子邮件ID接收的电子邮件。我在这里得到了一些答案,但是他们正在做的是,他们正在从邮箱中获取所有电子邮件,并迭代所有电子邮件并将其与其他条件匹配。 另一种方法是使用getSortedMessages方法,但Gmail也不支持排序。它会不断抛出Exception。

因此,建议使用其他任何答案,否则我必须采用提取所有电子邮件的传统方法,然后进行迭代并逐个检查并存储到数组变量中并返回它。

谢谢。

1 个答案:

答案 0 :(得分:0)

假设您正在使用IMAP,请将Folder.searchRecipientStringTermFromStringTerm结合使用:

Message[] msgs = inbox.search(new OrTerm(
                 new SearchTerm[] {
                    new RecipientStringTerm(Message.RecipientType.TO, "user@example.com"),
                    new RecipientStringTerm(Message.RecipientType.CC, "user@example.com"),
                    new FromStringTerm("user@example.com")
                  }));