2014-01-13 31 views
0

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

问题是: Message.getContent()总是返回SharedByteArrayInputStream。 和

Bodypart.getContent()总是返回BASE64DecoderStreamQRDecoderStream

我读了JavaMail'FAQ,它说:

问:当读取一个多部分消息,为什么是的getContent方法返回一个IMAPInputStream (or SharedByteArrayInputStream)而不是MimeMultipart object?

A的:这通常这是因为JavaBeans激活框架(JAF)无法找到mail.jar文件中包含的mailcap配置文件。 JAF使用线程的上下文类加载器来查找配置文件。如果上下文类加载器设置不正确,则可能会失败。大多数应用程序服务器应该正确设置上下文类加载器,但至少某些版本的Tomcat不能。一种解决方法是将mail.jar文件放在Tomcat的lib目录中,而不是将其包含在war文件中。另一个解决方法是添加代码如下所示您的应用程序的开头:

Thread.currentThread().setContextClassLoader(this.getClass().getClassLoader()); 

但我不知道如何在Android的解决这个问题。有没有人可以帮助我?

回答

1

我认为你是错的使用jar文件

Downloads Jar

,并获得更多信息跟随this

+0

太谢谢你了。我确实使用了错误的jar文件,它是oracle JavaMail。 – user2368561

+0

@ user2368561 one upvote :) – sachin10