Javamail从特定发件人处获取所有电子邮件

时间:2014-08-21 15:14:36

标签: java javamail imap pop3

在java中,我需要从特定发件人那里获取所有电子邮件。有几种方法可以做到这一点,如下所示:http://www.codejava.net/java-ee/javamail/using-javamail-for-searching-e-mail-messages

但是我需要在gmail端完成这个过程。我阅读所有电子邮件然后决定应该继续哪一个电子邮件是不对的。

同样在http://alvinalexander.com/java/javamail-multiple-search-terms-pop3-mailbox-yahoo中,您可以搜索邮件正文,但是发件人(FROM部分)呢?我该如何过滤它?

每次阅读所有电子邮件都不利于我们的带宽(当然,我们可以标记上次阅读的电子邮件,并以某种方式阅读所有新电子邮件,例如使用UIDFolder)

由于

2 个答案:

答案 0 :(得分:6)

我自己找到了:)

Folder inbox = store.getFolder("INBOX");
inbox.open(Folder.READ_ONLY);

SearchTerm sender = new FromTerm(new InternetAddress("from@example.com"));
Message[] messages = inbox.search(sender);

for (int i = 1; i < messages.length; i++) {
    read_message(messages[i]);
}

我只需要添加FromTerm!

答案 1 :(得分:0)

如果您需要使用服务器硬件来搜索来自特定发件人的电子邮件,则应使用IMAP command。 您需要ImapClient类和方法ExecuteSearch()。 Search IMAP commad对你来说是

SEARCH UNSEEN FROM "somebody@example.org"