'java.io.IOException: Exception writing Multipart with SpringBoot
I want to send an email with attachment:
public void sendMailWithAttachment(String to, String subject, String body, String fileToAttach) {
MimeMessagePreparator preparator = mimeMessage -> {
mimeMessage.setRecipient(Message.RecipientType.TO, new InternetAddress(to));
mimeMessage.setFrom(new InternetAddress("[email protected]"));
mimeMessage.setSubject(subject);
mimeMessage.setText(body);
FileSystemResource file = new FileSystemResource(new File(fileToAttach));
System.out.println(file.contentLength());
MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
helper.addAttachment("logo.jpg", file);
};
try {
javaMailSender.send(preparator);
}
catch (MailException ex) {
// simply log it and go on...
System.err.println(ex.getMessage());
}
}
but I have this Exception:
Failed messages: javax.mail.MessagingException: IOException while sending message;
nested exception is:
java.io.IOException: Exception writing Multipart
Solution 1:[1]
I would have created the MimeMessagePreparator in a different way and used Streams to read file.
public void sendMailWithAttachment(String to, String subject, String body, String fileToAttach) {
MimeMessagePreparator preparator = mimeMessage -> {
FileInputStream inputStream = new FileInputStream(new File(fileToAttach));
MimeMessageHelper message = new MimeMessageHelper(mimeMessage, true, "UTF-8");
message.setRecipient(Message.RecipientType.TO, new InternetAddress(to));
message.setFrom(new InternetAddress("[email protected]"));
message.setSubject(subject);
message.setText(body);
message.addAttachment("logo.jpg", new ByteArrayResource(IOUtils.toByteArray(inputStream)));
};
try {
javaMailSender.send(preparator);
}
catch (MailException ex) {
// simply log it and go on...
System.err.println(ex.getMessage());
}
}
Solution 2:[2]
There can be multiple causes for this. For me, it was not setting the text. In your case, if the body String is null, you may have the same problem.
The below answer helped me figure it out. https://stackoverflow.com/a/33015901/9905202
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Tris |
| Solution 2 | Haris |
