我使用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方法即可。