0

AndroidでIMAPを使用してメールを取得しようとしています。受信トレイ フォルダーからメッセージを取得できましたが、特にメッセージの本文部分 (アプリでさらに使用する予定) を取得する際に困難に直面しています。

必要なのは、メッセージを受け取り、平文の本文部分を返す関数だけです (可能であれば添付ファイルは無視します)。

private String getbody(Message message) {           

    try {
        Object m=message.getContent();
    } catch (IOException e) {
        // TODO Auto-generated catch block
            e.printStackTrace();
    } catch (MessagingException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    return "abc";                // THE BODY PART TO RETURN     

}

activation.jar ファイルをインポートしました。ただし、使用message.getcontent(); エラーが発生しています:

06-20 15:22:50.363: E/AndroidRuntime(9477):     java.lang.RuntimeException: An error occured while executing doInBackground()
06-20 15:22:50.363: E/AndroidRuntime(9477):     at android.os.AsyncTask$3.done(AsyncTask.java:278)
06-20 15:22:50.363: E/AndroidRuntime(9477):     at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
06-20 15:22:50.363: E/AndroidRuntime(9477):     at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
06-20 15:22:50.363: E/AndroidRuntime(9477):     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
06-20 15:22:50.363: E/AndroidRuntime(9477):     at java.util.concurrent.FutureTask.run(FutureTask.java:137)
06-20 15:22:50.363: E/AndroidRuntime(9477):     at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:208)
06-20 15:22:50.363: E/AndroidRuntime(9477):     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
06-20 15:22:50.363: E/AndroidRuntime(9477):     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
06-20 15:22:50.363: E/AndroidRuntime(9477):     at java.lang.Thread.run(Thread.java:856)
06-20 15:22:50.363: E/AndroidRuntime(9477):     Caused by: java.lang.NoClassDefFoundError: javax.activation.DataHandler
06-20 15:22:50.363: E/AndroidRuntime(9477):     at com.sun.mail.imap.IMAPMessage.getDataHandler(IMAPMessage.java:651)
06-20 15:22:50.363: E/AndroidRuntime(9477):     at javax.mail.internet.MimeMessage.getContent(MimeMessage.java:1420)
06-20 15:22:50.363: E/AndroidRuntime(9477):     at com.example.jmail.MainActivity$NetworkOperation.getbody(MainActivity.java:108)
06-20 15:22:50.363: E/AndroidRuntime(9477):     at com.example.jmail.MainActivity$NetworkOperation.doInBackground(MainActivity.java:87)
06-20 15:22:50.363: E/AndroidRuntime(9477):     at com.example.jmail.MainActivity$NetworkOperation.doInBackground(MainActivity.java:1)
06-20 15:22:50.363: E/AndroidRuntime(9477):     at android.os.AsyncTask$2.call(AsyncTask.java:264)
06-20 15:22:50.363: E/AndroidRuntime(9477):     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
06-20 15:22:50.363: E/AndroidRuntime(9477):     ... 5 more
4

2 に答える 2

0

主な質問はJavaMail FAQで回答されています。

あなたが得ているエラーはそれとは何の関係もありません。残念ながら、Android は Java ではないため、javax.activation は含まれていません。それを Android に取り込む方法を理解する必要があります。おそらく、StackOverflow の他の場所で答えが見つかるでしょう。

于 2013-06-21T21:29:46.010 に答える