我使用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进行连接。
答案 0 :(得分:0)
为什么要使用原始部件的内容创建新的MimeBodyPart?这没有任何意义,可能是你问题的根源。只需在原始部分使用saveFile方法。