0

一封电子邮件是从 gg@gg.com 发送的,并附有 2 个电子邮件 ID 的附件。一个是我的电子邮件 ID,另一个是 xx@xx.com 我收到了那封电子邮件。当我使用带有电子邮件 ID 作为搜索条件的 java Mail API 进行邮件搜索时,虽然我收到了该电子邮件,但它无法找到它。但是当我将它转发到相同的电子邮件 ID 时,搜索条件工作正常。请在第一次收到电子邮件时告诉我为什么无法搜索

Properties properties = System.getProperties();
        properties.put("mail.smtp.host", ExchangeProperties.getSmtpHost());
        properties.put("mail.pop3.connectiontimeout", String.valueOf(ExchangeProperties.getPop3ConnectionTimeout() * 1000));
        properties.put("mail.pop3.timeout", String.valueOf(ExchangeProperties.getPop3Timeout() * 1000));
        session = Session.getInstance(properties, null);
        session.setDebug(logger.isDebugEnabled());
        // Get the store
        store = session.getStore("pop3");
        store.connect(ExchangeProperties.getSmtpHost(), user, password);


 Folder folder = store.getFolder(folderName)
      Message[] foundMessages  = folder.search(andTerm); //andTerm contains email id
      FetchProfile fp = new FetchProfile();
                    fp.add(FetchProfile.Item.ENVELOPE);
                    folder.fetch(foundMessages, fp);
4

1 回答 1

0

由于您使用的是 pop3,因此所有搜索都是通过将所有消息下载到客户端并在那里搜索来完成的。如果您希望服务器进行搜索,请使用 imap。

如果新邮件在您打开 pop3 文件夹时到达,您将看不到它。您需要关闭文件夹并重新打开它。这是 pop3 协议的限制。

如果这些都不能解决您的问题,我需要确切地知道您正在使用哪个搜索词、您正在搜索的确切值以及电子邮件标题中出现的确切值。

于 2013-07-23T18:35:00.573 回答