即使将 MessageIDTerm 传递给该方法,JavaMail Folder.search() 也会返回多条 IMAP 消息。当消息是原始消息的后续转发时,似乎会发生这种情况。 JavaMail 版本是 1.4.4。邮件服务器是MS Exchange 2013。用户使用MS Outlook发送电子邮件。 这是代码:
MessageIDTerm messageIDTerm = new MessageIDTerm(uniqueMessageID);
Message[] messages = folder.search(messageIDTerm);
如果uniqueMessageID是已转发的电子邮件的消息ID,则消息数组将包含具有uniqueMessageID的消息以及所有后续转发的消息。 这种行为正确吗?有没有办法只获取传递给搜索方法的 messagedID 的消息?
最佳答案
这很可能是 Exchange 中的错误。开启JavaMail Session debugging它应该提供足够的信息供您向 Microsoft 报告该错误。
转发的邮件是否作为新邮件的附件发送?如果是这样,Exchange 可能会搜索附件中的 header 以及主邮件,这将是错误的。
顺便说一句,您可能想升级到 current 1.5.3 version of JavaMail .
关于JavaMail 文件夹 search() 方法返回具有唯一 MessageID 的多条消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30191096/