2014-01-13 204 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