Android Javamail接收电子邮件

时间:2014-01-13 09:14:25

标签: android jar javamail

我使用JavaMail在Android中接收电子邮件。

问题是: Message.getContent()始终返回SharedByteArrayInputStream。  并且

Bodypart.getContent()始终返回BASE64DecoderStreamQRDecoderStream

我读了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中的这个问题。有人能帮帮我吗?

1 个答案:

答案 0 :(得分:2)

我认为你使用了错误的jar文件

Downloads Jar

有关详情,请点击this