提问者:小点点

Javamail在下载附件时获得一个额外文件


在下载附件时,我得到了一个额外的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()是定义为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/平原; charset=UTF-8请找到附件...--001a114fd0aa0b377d0546bb84a0 Content-Type: text/html; charset=UTF-8请找到附件...--001a114fd0aa0b377d0546bb84a0--


共1个答案

匿名用户

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

问题很可能是您没有处理多部分/可选消息。请参阅JavaMail常见问题解答中的示例代码。