R. *_*mou 3 spring jakarta-mail
我正在尝试通过 Spring 2.5 的 MailSender 使用 JavaMail 发送附件,但我不断收到此错误:
Passed-in Resource contains an open stream: invalid argument.
JavaMail requires an InputStreamSource that creates a fresh stream for every call.
Run Code Online (Sandbox Code Playgroud)
我正在使用InputStreamResource:
InputStream crofileInputStream = emailDraft.getAttachmentCroFile().getInputStream();
InputStream nacfileInputStream = emailDraft.getAttachmentNacFile().getInputStream();
InputStream sourcefileInputStream = emailDraft.getAttachmentSourceFile().getInputStream();
InputStreamSource[] attachments = {new InputStreamResource(crofileInputStream),new InputStreamResource(nacfileInputStream),new InputStreamResource(sourcefileInputStream)};
sentEmailLog = mailSenderService.sendMIMEMessage(emailDraft, attachmentFileNames, attachments);
Run Code Online (Sandbox Code Playgroud)
最后一条指令调用
MimeMessageHelper.addAttachment(fileName,attachments[i])每个附件。
请问我怎么解决这个问题?
谢谢你的帮助。
尝试使用 javax.mail.util.ByteArrayDataSource
String mailTo = message.getHeaders().get("emailAddress", String.class);
MimeMessage mimeMessage = sender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
ByteArrayDataSource attachment = new ByteArrayDataSource(message.getPayload(), "application/octet-stream");
helper.addAttachment("document.zip", attachment);
helper.setText("text content of the email");
Run Code Online (Sandbox Code Playgroud)
您还可以查看此示例:https : //www.javatips.net/api/javax.mail.util.bytearraydatasource
| 归档时间: |
|
| 查看次数: |
4731 次 |
| 最近记录: |