在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)
由于
答案 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"