java 发送html格式的邮件(包含附件)

目录

一、需求描述

二、实现方法

二、错误写法,防止踩坑

三、 正确写法

四、邮件中携带附件

五、邮件发送



一、需求描述

图1显示的是系统中已经配置好的邮件模板,是html格式的内容。要我们把这个模板以邮件的形式发送出去。

图1

 

二、实现方法

利用Spring提供的JavaMailSender接口实现邮件发送

二、错误写法,防止踩坑

说明:我们不要用  BodyPart 这种写法!这种会显示标签

BodyPart messageBodyPart = new MimeBodyPart();
messageBodyPart.setText(currentMessage.getContent());
Multipart multipart = new MimeMultipart();
multipart.addBodyPart(messageBodyPart);

以上写法会产生的结果图2所示

图2

三、 正确写法

说明:我们要用  MimeBodyPart 这种写法

MimeBodyPart htmlPart  = new MimeBodyPart();
htmlPart.setContent(currentMessage.getContent(),"text/html;charset=utf-8");//html代码部分
Multipart multipart = new MimeMultipart();
multipart.addBodyPart(htmlPart);

正确结果如图3所示

图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);

六、日常感慨:坚持很难,但放弃很容易,转眼一看上次发博客已经是九个月前了,违背了初衷,我还会回来的。

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值