注意:此问题不是重复的。另一个问题仅针对InputStream
,而此问题仅适用于JavaMail
个附件。两个非常不同的问题。请删除该标志。
这是这个问题:
如何使用javamail
将附加到电子邮件的文件转换为可保留的java.sql.blob
?在下面的代码尝试中,eclipse
调试器和{{ 1}}命令确定确实有一个SYSO
附件可以转换为xml
但是InputStream
和blob
变量仍为空,尽管代码尝试将content
转移到其中。我可以更改哪些内容以将InputStream
正确转换为InputStream
格式?
blob
答案 0 :(得分:0)
转换时你的问题不是,至少我已经测试了以下代码,它对我来说很好用:
BodyPart bp = mp.getBodyPart(i);
InputStream stream = (InputStream)bp.getInputStream();
byte[] content = IOUtils.toByteArray(stream); //content.length shows correct length
Blob blob = null;
blob = new SerialBlob(content); // blob.length() shows correct length
如果您确实在使用IMAP,请尝试添加以下属性:
props.setProperty("mail.imap.partialfetch", "false");