版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yhzhaohy/article/details/89401010
在使用JavaMailSender发送带附件的邮件时,报下面所示异常
java.lang.IllegalStateException: Not in multipart mode - create an appropriate MimeMessageHelper via a constructor that takes a 'multipart' flag if you need to set alternative texts or add inline elements or attachments.
代码:
@Test
public void sendAttachmentMail() throws MessagingException {
MimeMessage mimeMessage = mailSender.createMimeMessage();
MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage);
messageHelper.setFrom("*****@163.com");
messageHelper.setTo("*****@qq.com");
messageHelper.setSubject("带附件");
messageHelper.setText("邮件包含有附件");
File file = new File("fujian.png");
if(file.exists()){
System.out.println("附件。。。");
FileSystemResource fileSystemResource = new FileSystemResource(file);
messageHelper.addAttachment("附件1.png",fileSystemResource);
}
mailSender.send(mimeMessage);
}
原因:是由于创建 MimeMessageHelper 的时候,缺少参数引起的异常。
解决办法:
MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage,true);