gpt4 book ai didi

java - 如何使用 InputStream 和 Spring 发送带附件的电子邮件?

转载 作者:IT老高 更新时间:2023-10-28 13:47:20 25 4
gpt4 key购买 nike

情况是这样的:

首先,我们在内存中生成一个文件,我们可以得到一个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);

但我得到一个异常(exception):

Passed-in Resource contains an open stream: invalid argument. JavaMail requires an InputStreamSource that creates a fresh stream for every call.

最佳答案

对于在内存中生成的文件,你可以使用ByteArrayResource。只需使用 IOUtils 转换您的 InputStream 对象来自 Apache Commons IO图书馆。

很简单:

helper.addAttachment("attachement",
new ByteArrayResource(IOUtils.toByteArray(inputStream)));

关于java - 如何使用 InputStream 和 Spring 发送带附件的电子邮件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5677490/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com