发送电子邮件,发送电子邮件至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);
答案 0 :(得分:0)
由于您使用的是pop3,所有搜索都是通过将所有消息下载到客户端并在那里搜索来完成的。如果您希望服务器进行搜索,请使用imap。
如果在打开pop3文件夹时收到新邮件,您将无法看到它。您需要关闭该文件夹并重新打开它。这是pop3协议的限制。
如果这些都不能解决您的问题,我需要准确了解您正在使用的搜索字词,确切的搜索值以及电子邮件标题中显示的确切值。