【问题标题】:Javamail get all emails form a specific senderJavamail 获取来自特定发件人的所有电子邮件
【发布时间】:2014-10-15 07:15:11
【问题描述】:

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

谢谢

【问题讨论】:

    标签: java jakarta-mail imap pop3


    【解决方案1】:

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

    SEARCH UNSEEN FROM "somebody@example.org"
    

    【讨论】:

      【解决方案2】:

      我自己找到的:)

      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!

      【讨论】:

      • 我只收到了三封与您上面提到的代码相同的电子邮件。但是有多个超过三个。任何帮助将不胜感激。
      • 你可以查看api。该代码对我有用,我正在获取正确数量的结果。
      猜你喜欢
      • 1970-01-01
      • 2013-12-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-04
      • 2015-04-19
      • 2014-08-02
      • 2012-06-07
      相关资源
      最近更新 更多