2017-01-23 72 views
0

我在下載附件時收到一個File類型的額外文件。我使用MimeBodyPart.saveFile()這裏是我的下載附件代碼Javamail獲取一個額外的文件在下載附件時

for (MimeBodyPart mbp : msgToDownload.getAttachmentList()) { 
    updateProgress(msgToDownload.getAttachmentList().indexOf(mbp), 
    msgToDownload.getAttachmentList().size()); 
    mbp.saveFile(DOWNLOAD_LOCATION + mbp.getFileName()); 
} 

這裏msgToDownload是採取Message msg與其它一些參數參數類。而getAttachmentList()MimeBodyPart的類型定義爲List<MimeBodyPart>
名單這是我如何添加附件列出

sb.setLength(0); 
     msgToRender.clearAttachments(); 
     Message msg = msgToRender.getMsgRef(); 
     try { 
//   String messageType = msg.getContentType(); 

      sb.append(getText(msg)); 

      if (hasAttachments(msg)) { 
       Multipart mp = (Multipart) msg.getContent(); 
       for (int i = mp.getCount() - 1; i >= 0; i--) { 
        BodyPart bp = mp.getBodyPart(i); 

        MimeBodyPart mbp = (MimeBodyPart) bp; 
        msgToRender.addAttachment(mbp); 
       } 
      } 
    }catch(Exception e){ 
    } 

額外的文件包含郵件的文本部分的屬性。額外文件內容

-001a114fd0aa0b377d0546bb84a0 Content-Type:text/plain; charset = UTF-8請找到附件... --001a114fd0aa0b377d0546bb84a0 Content-Type:text/html;字符集= UTF-8,請找到附件... --001a114fd0aa0b377d0546bb84a0--

回答

0

首先,你應該瞭解isMimeType方法。

問題很可能是您沒有處理多部分/替代郵件。請參閱sample code in the JavaMail FAQ

+0

現在下載附件時,我的程序還下載了一個文件,該文件包含該文件中的所有信息,如「內容類型」和文本消息。但我不希望它下載該信息。 –

+0

即使郵件沒有附件,也會下載一個帶有文本屬性的郵件。 –

+0

而在上面的代碼中,我認爲'messageType.contains(「multipart」)'意味着所有類型的multipart或者'multipart/alternative'或者其他類型的multipart。這不正確。 –