Javamail附件数据丢失

Javamail附件数据丢失,java,jakarta-mail,Java,Jakarta Mail,我使用Javamail将附件保存在临时文件夹中,代码如下:- for (int i = 0; i < multipartmsg.getCount(); ++i) { BodyPart bodypart = multipartmsg.getBodyPart(i); if (Part.ATTACHMENT.equalsIgnoreCase(bodypart.getDisposition()) && null

我使用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。数据丢失,因此我无法打开该文件。知道为什么会这样吗


我还设置了我的属性。setPropertymail.imaps.partialfetch,false;既然我使用imaps进行连接。

为什么要用原始部件的内容创建新的MimeBodyPart?这毫无意义,很可能是你问题的根源。只需在原始零件上使用saveFile方法。

我意识到,当一个简单的cast可以完成工作时,我先创建一个bodypart,然后再创建一个mimebodypart,使用saveFile方法是愚蠢的。是的,这就是我问题的原因。谢谢: