JavaMailMessage.GetContent偶尔返回IMAPInputStream
我正在尝试使用spring集成电子邮件轮询器和IMAP从lotus notes读取电子邮件 一切似乎都很顺利 接收到的javamailMessage的getcontect方法是字符串或多部分的实例。我已经在我的代码中处理了这个问题 有时getcontent返回一个Inputstream。这种情况偶尔发生。一旦我们重新启动jvm,它似乎可以正常工作一段时间,然后又开始发生。关于为什么会发生这种情况的任何想法/建议。 我确实读过javadoc 对于DataHandler系统未知的内容类型,将返回一个输入流作为内容 javamailmessage.getcontent()何时可以是Inputstream的实例。如何查找DataHandler系统未知的内容类型 我的应用程序是使用gradle构建的。我使用javamail 1.4.7JavaMailMessage.GetContent偶尔返回IMAPInputStream,java,spring,jakarta-mail,imap,spring-integration,Java,Spring,Jakarta Mail,Imap,Spring Integration,我正在尝试使用spring集成电子邮件轮询器和IMAP从lotus notes读取电子邮件 一切似乎都很顺利 接收到的javamailMessage的getcontect方法是字符串或多部分的实例。我已经在我的代码中处理了这个问题 有时getcontent返回一个Inputstream。这种情况偶尔发生。一旦我们重新启动jvm,它似乎可以正常工作一段时间,然后又开始发生。关于为什么会发生这种情况的任何想法/建议。 我确实读过javadoc 对于DataHandler系统未知的内容类型,将返回一个
compile group: 'javax.mail', name: 'javax.mail-api', version:'1.4.7'
compile group: 'com.sun.mail', name: 'mailapi', version:'1.4.7'
compile group: 'com.sun.mail', name: 'imap', version:'1.4.7'
我使用Spring3.1.3和SpringIntegration3.0.4,JavaMail 1.4.7非常旧,如果可能的话,您应该这样做 请参阅以了解如何处理许多不同的内容类型
您可以使用getContentType方法查看程序未处理的内容类型。我选择1.4.7的原因是1.5.2与我们使用的spring版本不兼容。我将尝试升级该版本。对于我最初的问题-您知道GetContentType何时可以返回inputstream吗。是否与未加载或未找到mailcap文件有关是的,这取决于mailcap文件是否找到处理每种数据类型的正确类,但如果正确获取多部分对象,则意味着它必须找到默认的mailcap文件。有大量可能的MIME类型没有到Java的默认映射。您需要弄清楚的是,您是遇到了这些MIME类型中的一种,还是得到了一个应该有映射但映射被破坏的公共MIME类型。例如,常见的附件MIME类型是application/pdf,但该MIME类型没有默认映射。对于相同的mimetype multipart/mixed(如果我记得正确的话),我大多数时候都会得到multipart。有时我会收到一些明显损坏的东西。JavaMail使用JAF处理MIME类型到Java的映射。JAF使用类加载器查找配置映射的mailcap文件。如果类加载器损坏,它有时可能无法找到映射。您正在运行哪个应用程序服务器?您使用的是什么JDK版本?Vfabric tc服务器,JDK 1.7。