我使用Javamail将附件保存在临时文件夹中,代码如下:-

for (int i = 0; i < multipartmsg.getCount(); ++i) {

    BodyPart bodypart = multipartmsg.getBodyPart(i);
              if (Part.ATTACHMENT.equalsIgnoreCase(bodypart.getDisposition())
                && null != bodypart.getFileName()
                    && !bodypart.getFileName().isEmpty()) {

            InputStream is = bodypart.getInputStream();
            MimeBodyPart mbp = new MimeBodyPart(is);
            File f = new File("/temp/"+abcd);

            mbp.saveFile(f);
    }


但是250kB的文件将另存为220kB。数据丢失,因此我无法打开文件。知道为什么会这样吗?

我还设置了properties.setProperty(“ mail.imaps.partialfetch”,“ false”);因为我使用imaps进行连接。

最佳答案

为什么要使用原始零件的内容创建一个新的MimeBodyPart?那没有意义,很可能是问题的根源。只需在原始部分上使用saveFile方法即可。

07-26 09:29