JavaMailMessage.GetContent偶尔返回IMAPInputStream

时间:2014-12-29 20:27:08

标签: java spring javamail imap spring-integration

我试图使用弹簧集成电子邮件轮询器使用IMAP阅读莲花笔记中的电子邮件。

一切似乎都运作良好。

收到的javamailMessage的getcontect方法是一个instanceOf String或Multipart,如预期的那样。我在我的代码中处理了这个问题。

有时getcontent会返回一个Inputstream。偶尔会发生这种情况。一旦我们重新启动jvm,它似乎在一段时间内正常工作,然后它又开始发生了。关于为什么会发生这种情况的任何想法/建议。 我确实读过了javadoc

"对于DataHandler系统未知的内容类型,将返回输入流作为内容。"

javamailmessage.getcontent()何时可以是一个instanceOf Inputstream。我怎样才能找到DataHandler系统未知的内容类型

我的应用程序是使用gradle构建的。我使用javamail 1.4.7。

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'

我使用spring 3.1.3和spring Integration 3.0.4

1 个答案:

答案 0 :(得分:2)

JavaMail 1.4.7已经过时了,如果可能,你应该upgrade to 1.5.2

请参阅msgshow.java sample program以了解如何处理许多不同的内容类型。

您可以使用getContentType方法查看您的程序未处理的内容类型。