目录
一、需求描述
图1显示的是系统中已经配置好的邮件模板,是html格式的内容。要我们把这个模板以邮件的形式发送出去。
二、实现方法
利用Spring提供的JavaMailSender
接口实现邮件发送
二、错误写法,防止踩坑
说明:我们不要用 BodyPart 这种写法!这种会显示标签
BodyPart messageBodyPart = new MimeBodyPart();
messageBodyPart.setText(currentMessage.getContent());
Multipart multipart = new MimeMultipart();
multipart.addBodyPart(messageBodyPart);
以上写法会产生的结果图2所示
三、 正确写法
说明:我们要用 MimeBodyPart 这种写法
MimeBodyPart htmlPart = new MimeBodyPart();
htmlPart.setContent(currentMessage.getContent(),"text/html;charset=utf-8");//html代码部分
Multipart multipart = new MimeMultipart();
multipart.addBodyPart(htmlPart);
正确结果如图3所示
四、邮件中携带附件
代码说明:附件名是可以自定义的
File file = (File)var11.next();
messageBodyPart = new MimeBodyPart();
FileDataSource fileDataSource = new FileDataSource(file);
messageBodyPart.setDataHandler(new DataHandler(fileDataSource));
messageBodyPart.setFileName(MimeUtility.encodeText(file.getName()));
String fileName = prjProjectAttachmentMapper.queryNameByPath(file.getPath());
if(StringUtils.isEmpty(fileName)){
fileName = "未知文件.docx";
}
messageBodyPart.setFileName(MimeUtility.encodeText(fileName));
multipart.addBodyPart(messageBodyPart);
五、邮件发送
mailSender.send(mimeMessage);
六、日常感慨:坚持很难,但放弃很容易,转眼一看上次发博客已经是九个月前了,违背了初衷,我还会回来的。