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

在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)

谢谢

我自己发现了:)

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!

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

 SEARCH UNSEEN FROM "somebody@example.org"