JavaMail 文件夹 search() 方法返回具有唯一 MessageID 的多条消息

标签 java email jakarta-mail imap

即使将 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/

相关文章:

java - 将 Spring Multipart 对象附加到 Java 邮件对象

email - 间隔发送 PHP 邮件

email - 使用 Exchange Web 服务阅读电子邮件

php - gmail 无法正确显示我的消息

java - 二叉搜索树删除方法错误

java - POP3协议(protocol)但无法正确获取未读邮件

java - WSO2 ESB - 发送电子邮件

java - TO_DATE ('2020-04-01 00:00:00.0' ,'YYYY-MM-DD HH24:MI:SS.TZR' 中最后一个 .0 的 oracle 格式是什么?

java - Maven - 在构建时包含不同的文件

java - 读取Oracle 10gas上的环境变量