将JavaMail附件转换为blob?

时间:2015-01-14 22:49:59

标签: java javamail

注意:此问题不是重复的。另一个问题仅针对InputStream,而此问题仅适用于JavaMail个附件。两个非常不同的问题。请删除该标志。

这是这个问题:
如何使用javamail将附加到电子邮件的文件转换为可保留的java.sql.blob在下面的代码尝试中,eclipse调试器和{{ 1}}命令确定确实有一个SYSO附件可以转换为xml但是InputStreamblob变量仍为空,尽管代码尝试将content转移到其中。我可以更改哪些内容以将InputStream正确转换为InputStream格式?

blob

1 个答案:

答案 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

看看:Why does JavaMail BodyPart.getInputStream() return an empty stream when using IMAP, but not when using POP3?

如果您确实在使用IMAP,请尝试添加以下属性: props.setProperty("mail.imap.partialfetch", "false");