我使用JavaMail在Android中接收电子邮件。
问题是:
Message.getContent()
始终返回SharedByteArrayInputStream
。
并且
Bodypart.getContent()
始终返回BASE64DecoderStream
或QRDecoderStream
。
我读了JavaMail'FAQ,它说:
问:在阅读多部分邮件时,为什么getContent方法返回IMAPInputStream (or SharedByteArrayInputStream)
而不是MimeMultipart object?
答:这通常是因为JavaBeans Activation Framework(JAF)找不到mail.jar文件中包含的mailcap配置文件。 JAF使用线程的上下文类加载器来查找配置文件。如果未正确设置上下文类加载器,则可能会失败。大多数应用程序服务器应该正确设置上下文类加载器,但至少某些版本的Tomcat不能。一种解决方法是将mail.jar文件放在Tomcat的lib目录中,而不是将其包含在war文件中。另一种解决方法是在应用程序的开头添加以下代码:
Thread.currentThread().setContextClassLoader(this.getClass().getClassLoader());
但我不知道如何解决Android中的这个问题。有人能帮帮我吗?