Javamail获取一个额外的文件下载附件

时间:2017-01-23 12:36:59

标签: java javamail email-attachments

我在下载附件时会收到一个File类型的额外文件。我正在使用MimeBodyPart.saveFile()这是我的下载附件代码

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){
    }

额外文件包含Mail的文本部分属性。额外文件的内容

  

-001a114fd0aa0b377d0546bb84a0 Content-Type:text / plain; charset = UTF-8请找附件... --001a114fd0aa0b377d0546bb84a0 Content-Type:text / html; charset = UTF-8请找附件...... --001a114fd0aa0b377d0546bb84a0 -

1 个答案:

答案 0 :(得分:0)

首先,您应该了解isMimeType方法。

问题很可能是您没有处理多部分/替代消息。请参阅sample code in the JavaMail FAQ