经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » Java相关 » Spring » 查看文章
SpringBoot QQ邮箱发送邮件实例代码
来源:jb51  时间:2021/12/31 17:27:07  对本文有异议

SpringBoot整合邮件任务(QQ邮箱发送)

1.获取QQ邮箱授权码

在这里插入图片描述

2.导入邮箱发送依赖启动器

使用定制邮件模板的方法实现通用邮件发送,Thymeleaf构建邮件模板需要一起导入依赖。

  1. <!-- Mail -->
  2. <dependency>
  3. <groupId>org.springframework.boot</groupId>
  4. <artifactId>spring-boot-starter-mail</artifactId>
  5. </dependency>
  6.  
  7. <!-- thymeleaf模板依赖 -->
  8. <dependency>
  9. <groupId>org.springframework.boot</groupId>
  10. <artifactId>spring-boot-starter-thymeleaf</artifactId>
  11. </dependency>

3.配置文件yml添加邮件服务配置

  1. # Spring配置
  2. spring:
  3. mail:
  4. host: smtp.qq.com
  5. username: ********@qq.com
  6. # password是第一步QQ邮箱开通的smtp服务后得到的客户端授权码
  7. password: ******************
  8. default-encoding: UTF-8
  9. properties:
  10. mail:
  11. smtp:
  12. auth: true
  13. starttls:
  14. enable: true
  15. required: true
  16. #thymeleaf模板引擎配置太简单,就不贴出来了

4.编写接口IMailService

  1. public interface IMailService {
  2. void sendHtmlMailThymeLeaf(String mailFrom, String mailFromNick, String mailTo, String cc, String subject, String content);
  3. }

5.编写实现MailServiceImpl

  1. @Service
  2. public class MailServiceImpl implements IMailService {
  3.  
  4. /**
  5. * JavaMailSender是Spring Boot在MailSenderPropertiesConfiguration 类中配直好的,该类在 Mail
  6. * 自动配置类 MailSenderAutoConfiguration 中导入 因此这里注入 JavaMailSender 就可以使用了
  7. */
  8. @Autowired
  9. private JavaMailSender mailSender;
  10.  
  11. @Override
  12. public void sendHtmlMailThymeLeaf(String mailFrom, String mailFromNick, String mailTo, String cc, String subject, String content) {
  13. MimeMessage mimeMessage = mailSender.createMimeMessage();
  14. try {
  15. MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, true);
  16. mimeMessageHelper.setFrom(new InternetAddress(mailFromNick + " <" + mailFrom + ">"));
  17. // 设置多个收件人
  18. String[] toAddress = mailTo.split(",");
  19. mimeMessageHelper.setTo(toAddress);
  20. if (!StringUtils.isEmpty(cc)) {
  21. mimeMessageHelper.setCc(cc);
  22. }
  23. mimeMessageHelper.setSubject(subject);
  24. // 第二个参数为true表示邮件正文是html格式的,默认是false
  25. mimeMessageHelper.setText(content, true);
  26.  
  27. mailSender.send(mimeMessage);
  28. } catch (MessagingException e) {
  29. System.out.println(e);
  30. }
  31.  
  32. }
  33. }

6.Controller调用

  1. // 发件人要跟yml配置文件里填写的邮箱一致
  2. String mailFrom = "******@qq.com";
  3. // 收件人
  4. String mailTo = "******@qq.com,******@qq.com";
  5. // 抄送(可为空)
  6. String cc = "******@qq.com";
  7.  
  8.  
  9. // 注入mailService
  10. @Autowired
  11. private IMailService mailService;
  12. // 注入TemplateEngine
  13. @Autowired
  14. TemplateEngine templateEngine;
  15.  
  16. @RequestMapping("/other/test")//请求路径
  17. @ResponseBody
  18. public void testMail() {
  19.  
  20. //注意1:这里我是查询对应的内容,使用富文本编辑器存储html标签的内容
  21. Strategy strategy = strategyService.selectStrategyByStrategyId(Long.valueOf(1));
  22. Context context = new Context(); // 导包是org.thymeleaf.context
  23. //注意2:获取发送的内容传入thymeleaf模板中
  24. context.setVariable("content", strategy.getStrategyContent());
  25.  
  26. String content = templateEngine.process("mailTemplate.html", context);
  27. //System.out.println(content);
  28.  
  29. mailService.sendHtmlMailThymeLeaf(mailFrom, "定义发件人名字", mailTo, cc, "定义邮件标题", content);
  30.  
  31. System.out.println("邮件发送成功");
  32. }
  33.  

7.thymeleaf模板 mailTemplate.html

  1. <!DOCTYPE html>
  2. <html lang="en" xmlns:th="http://www.thymeleaf.org">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>邮件发送</title>
  6. </head>
  7.  
  8. <body>
  9. <!--使用富文本框包含HTML标签 使用 th:utext标签 会解析html,显示相应的效果-->
  10. <div th:utext="${content}">Some escaped text</div>
  11.  
  12. </body>
  13.  
  14. </html>

总结

到此这篇关于SpringBoot QQ邮箱发送邮件实例代码的文章就介绍到这了,更多相关SpringBoot 邮箱发信内容请搜索w3xue以前的文章或继续浏览下面的相关文章希望大家以后多多支持w3xue!

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号