2017-02-27 21 views
0

に私はマックの郵送サービスを使用した後、この問題に直面していた場合でもpart.getdispotion()= nullを取得。
OutlookやGmailを使用すると添付ファイルを読み取ることができます。私は、メールから添付ファイルを読んでいたコードのjavaxのメールAPI:添付ファイルが存在

作品。マックメーリングサービスの

if (contentType.contains("multipart")) 
     { 
      Multipart multiPart = (Multipart) msg.getContent(); 
      int partCount = multiPart.getCount();          

      for (int j = 0; j < partCount; j++) 
      { 
       BodyPart part = multiPart.getBodyPart(j);           
       if (Part.ATTACHMENT.equalsIgnoreCase(part.getDisposition())) // getting null here 
       { 
        attachmentProcessing = true; 
        InputStream is; 
        is = part.getInputStream(); 
        f = new File(filePath + part.getFileName()); 
        fileArray.add(f); 
        FileOutputStream fos = new FileOutputStream(f); 
        byte[] buf = new byte[4096]; 
        int bytesRead; 
        while((bytesRead = is.read(buf))!=-1) { 
         fos.write(buf, 0, bytesRead); 
        } 
        fos.close(); 
       }          
      } 
     } 

一部の詳細:

テキスト/平野。文字セット= US-ASCII
part.getDisposition()ヌル
マルチパート/混合を=。境界= "Appleのメール= _C50D7E2D-27A1-4449-BAA3-5DC9D1E522AF"

など

マルチパート/混合のために、境界= "---- = _ NextPart_000_0033_01D28DC6.C9D0C8B0"
テキスト/平野。 name = HashTagList.txt; charset = us-ascii
part.getDisposition()= attachment

答えて

0

処分は任意です。 「添付ファイル」を含むすべてのメッセージが処理を設定するわけではありません。 JavaMail FAQにはさらに詳しい情報があります。

また、コンテンツタイプで文字列 "multipart"をチェックするのではなく、isMimeTypeメソッドを使用し、 "multipart/mixed"をチェックする必要があります。

さらに詳しい例と詳細については、msgshow.javaサンプルプログラムを参照してください。

関連する問題