情况是这样的:
首先我们在内存中生成一个文件,我们可以得到一个 InputStream
对象。其次, InputStream 对象必须作为电子邮件的附件发送。语言是Java,我们使用Spring来发送邮件。
我找到了很多信息,但找不到如何使用 InputStream
发送电子邮件附件。我试着这样做:
InputStreamSource iss= new InputStreamResource(new FileInputStream("c:\\a.txt"));
MimeMessageHelper message = new MimeMessageHelper(mimeMessage, true, "UTF-8");
message.addAttachment("attachment", iss);
但我得到一个例外:
传入的资源包含一个打开的流:参数无效。 JavaMail 需要一个为每次调用创建新流的 InputStreamSource。
原文由 kaka2008 发布,翻译遵循 CC BY-SA 4.0 许可协议
对于 在内存 中生成的文件,您可以使用
ByteArrayResource
。只需使用 Apache Commons IO 库中的IOUtils
转换您的InputStream
对象。这很简单: