我使用JavaMail在Android中接收電子郵件。Android Javamail接收電子郵件
問題是: Message.getContent()
總是返回SharedByteArrayInputStream
。 和
Bodypart.getContent()
總是返回BASE64DecoderStream
或QRDecoderStream
。
我讀了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的解決這個問題。有沒有人可以幫助我?
太謝謝你了。我確實使用了錯誤的jar文件,它是oracle JavaMail。 – user2368561
@ user2368561 one upvote :) – sachin10