Javamail获取来自特定发件人的所有电子邮件 - 代码日志

Javamail get all emails form a specific sender - Stack Overflow

我正在尝试使用 JavaMail

获取来自特定发件人的所有电子邮件,比如来自@example.com

我尝试关注

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

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

但是它没有给我任何邮件。因为我收到了来自此类发件人的多封电子邮件。

我知道我可以先阅读收件箱中的所有电子邮件,然后使用 getFrom()

搜索此类发件人
Message[] arrayMessages = folderInbox.getMessages();

但是不可行

我应该怎么做?

POP3 协议不支持 server-side 搜索。所有消息的所有 headers 都将下载到客户端并在那里进行搜索,就像您自己做的那样。不过,如果您有来自该发件人的消息,我希望它能正常工作。 JavaMail debug output 将显示是否真的有来自该发件人的邮件。

更简单更好的解决方案是切换到 IMAP,让服务器进行搜索。