2016-07-29 6 views
0

この質問は、Java Mail APIおよびGmailアカウントに関連しています。添付ファイルをダウンロードせずにメール本文を取得する方法

添付ファイルを無視して、Gmailのメールからメッセージの部分を表示したいとします。私のコードは、添付ファイルがない場合は正常に動作していますが、添付ファイル付きの電子メールに関しては、出力を出すわけではありません。

電子メールのメッセージ本文を表示したいだけです。

ありがとうございます。

+0

添付ファイルなしで動作するコードを追加してください。添付ファイルがある場合のログがある場合は追加してください。 – Hrabosch

+0

ここに行くhttp://pastebin.com/vtKcas0K –

+0

Ok、問題は部分的に76行目からです、そうではありませんか?あなたはそれをデバッグしようとしましたか?そこで何が起こるか知っていますか?私はそれを試みますが、これらの情報はあなたの質問であなたから提供されるべきです;)私はより多くの自由な時間を持っているときに私はそれをデバッグしようとします。 – Hrabosch

答えて

0

これはあなたのコードをデバッグしようとせずに最初のショットですが、original Oracle suggestionに従うことを試みることができる:

private boolean textIsHtml = false; 

    /** 
    * Return the primary text content of the message. 
    */ 
    private String getText(Part p) throws 
       MessagingException, IOException { 
     if (p.isMimeType("text/*")) { 
      String s = (String)p.getContent(); 
      textIsHtml = p.isMimeType("text/html"); 
      return s; 
     } 

     if (p.isMimeType("multipart/alternative")) { 
      // prefer html text over plain text 
      Multipart mp = (Multipart)p.getContent(); 
      String text = null; 
      for (int i = 0; i < mp.getCount(); i++) { 
       Part bp = mp.getBodyPart(i); 
       if (bp.isMimeType("text/plain")) { 
        if (text == null) 
         text = getText(bp); 
        continue; 
       } else if (bp.isMimeType("text/html")) { 
        String s = getText(bp); 
        if (s != null) 
         return s; 
       } else { 
        return getText(bp); 
       } 
      } 
      return text; 
     } else if (p.isMimeType("multipart/*")) { 
      Multipart mp = (Multipart)p.getContent(); 
      for (int i = 0; i < mp.getCount(); i++) { 
       String s = getText(mp.getBodyPart(i)); 
       if (s != null) 
        return s; 
      } 
     } 

     return null; 
    } 

は、私はあなたがマルチパートを取得しようとしている問題や内容はそれからそこにあると思います。 仕事上のコードときにのみ:

あなたは( パートです)MessageオブジェクトとGetTextメソッドを呼び出すことができます。

+0

このコードを既存のコードにどこに追加しますか?私はそれを追加しようとしたが、コンパイル時にエラーが出る? –

関連する問題