程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

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

发布于2021-06-14 10:03     阅读(400)     评论(0)     点赞(24)     收藏(1)


目录

一、需求描述

二、实现方法

二、错误写法,防止踩坑

三、 正确写法

四、邮件中携带附件

五、邮件发送



一、需求描述

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

图1

 

二、实现方法

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

二、错误写法,防止踩坑

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

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

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

图2

三、 正确写法

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

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

正确结果如图3所示

图3

四、邮件中携带附件

代码说明:附件名是可以自定义的

  1. File file = (File)var11.next();
  2. messageBodyPart = new MimeBodyPart();
  3. FileDataSource fileDataSource = new FileDataSource(file);
  4. messageBodyPart.setDataHandler(new DataHandler(fileDataSource));
  5. messageBodyPart.setFileName(MimeUtility.encodeText(file.getName()));
  6. String fileName = prjProjectAttachmentMapper.queryNameByPath(file.getPath());
  7. if(StringUtils.isEmpty(fileName)){
  8. fileName = "未知文件.docx";
  9. }
  10. messageBodyPart.setFileName(MimeUtility.encodeText(fileName));
  11. multipart.addBodyPart(messageBodyPart);

五、邮件发送

mailSender.send(mimeMessage);

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

原文链接:https://blog.csdn.net/congweijing/article/details/117735545



所属网站分类: 技术文章 > 博客

作者:忽明忽灭

链接:http://www.javaheidong.com/blog/article/222749/faa56112c034f615c41e/

来源:java黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

24 0
收藏该文
已收藏

评论内容:(最多支持255个字符)