当前位置:   article > 正文

IDEA 用邮箱授权码发送邮件的详细配置及代码_minemessagehelper授权码

minemessagehelper授权码
  1. pom.xml里Email依赖配置:

  1. <!--mail依赖配置-->
  2. <dependency>
  3. <groupId>org.springframework.boot</groupId>
  4. <artifactId>spring-boot-starter-mail</artifactId>
  5. </dependency>
顺便配置好slf4j日志框架
  1. <!--日志框架 https://mvnrepository.com/artifact/org.slf4j/slf4j-api -->
  2. <dependency>
  3. <groupId>org.slf4j</groupId>
  4. <artifactId>slf4j-api</artifactId>
  5. <version>${slf4j.version}</version>
  6. </dependency>
  7. <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-simple-->
  8. <dependency>
  9. <groupId>org.slf4j</groupId>
  10. <artifactId>slf4j-simple</artifactId>
  11. <version>${slf4j.version}</version>
  12. <!-- 注意,若无type为jar则报错-->
  13. <type>jar</type>
  14. </dependency>

 邮箱配置方式一:

在application.properties里面配置
  1. #邮箱配置
  2. #平台地址,这里用的是163邮箱,使用其他邮箱请更换
  3. spring.mail.host=smtp.163.com
  4. #端口号
  5. spring.mail.port=25
  6. #发送邮件的邮箱地址:改成自己的邮箱
  7. spring.mail.username=aabbcc@163.com
  8. #发送短信后它给你的授权码 填写到这里
  9. spring.mail.password=DFGHQWSDSFGHUYTG
  10. #与发件邮箱一致
  11. spring.mail.from=aabbcc@163.com
在application.yml里配置
  1. spring:
  2. datasource:
  3. url: jdbc:mysql://localhost:3306/af_school?useUnicode=true&characterEncoding=utf8
  4. username: root
  5. password: aabbcc
  6. driver-class-name: com.mysql.cj.jdbc.Driver
  7. #邮箱配置
  8. mail:
  9. #平台地址,这里用的是163邮箱,使用其他邮箱请更换
  10. host: smtp.163.com
  11. #端口号
  12. port: 25
  13. #发送邮件的邮箱地址:改成自己的邮箱
  14. username: aabbcc@163.com
  15. #发送短信后它给你的授权码 填写到这里
  16. password: DFGHQWSDSFGHUYTG
  17. #与发件邮箱一致
  18. from: aabbcc@163.com

邮箱配置上是MySQL配置,邮箱授权码请百度自行解决。两种配置方式任选其一,推荐使用application.yml文件里配置

配置完毕写EmailService接口

  1. package com.zw.springboot.springbootdemo.service;
  2. /**
  3. * ClassName: EmailService
  4. * Package: com.zw.springboot.springbootdemo.service
  5. * Description:
  6. *
  7. * @Author 唱片
  8. * @Create 2024/4/22 下午4:00
  9. * @Version 1.0
  10. */
  11. public interface EmailService {
  12. /**
  13. * 发送文本邮件
  14. *
  15. * @param to 收件人
  16. * @param subject 主题
  17. * @param content 内容
  18. */
  19. void sendSimpleMail(String to, String subject, String content);
  20. /**
  21. * 发送HTML邮件
  22. *
  23. * @param to 收件人
  24. * @param subject 主题
  25. * @param content 内容
  26. */
  27. public void sendHtmlMail(String to, String subject, String content);
  28. /**
  29. * 发送带附件的邮件
  30. *
  31. * @param to 收件人
  32. * @param subject 主题
  33. * @param content 内容
  34. * @param filePath 附件
  35. */
  36. public void sendAttachmentsMail(String to, String subject, String content, String filePath);
  37. }

写出EmailService实现类EmailUtil

  1. package com.zw.springboot.springbootdemo.util;
  2. /**
  3. * ClassName: EmailUtil
  4. * Package: com.zw.springboot.springbootdemo.util
  5. * Description:
  6. *
  7. * @Author 唱片
  8. * @Create 2024/4/22 下午2:33
  9. * @Version 1.0
  10. */
  11. import com.zw.springboot.springbootdemo.service.EmailService;
  12. import jakarta.mail.internet.InternetAddress;
  13. import jakarta.mail.internet.MimeMessage;
  14. import org.slf4j.Logger;
  15. import org.slf4j.LoggerFactory;
  16. import org.springframework.beans.factory.annotation.Autowired;
  17. import org.springframework.beans.factory.annotation.Value;
  18. import org.springframework.core.io.FileSystemResource;
  19. import org.springframework.mail.SimpleMailMessage;
  20. import org.springframework.mail.javamail.JavaMailSender;
  21. import org.springframework.mail.javamail.MimeMessageHelper;
  22. import org.springframework.stereotype.Service;
  23. import java.io.File;
  24. /**
  25. * 发送邮件工具类 MailUtil
  26. *
  27. * @author heshi
  28. * @date 2021/3/22 16:52
  29. */
  30. @Service
  31. public class EmailUtil implements EmailService
  32. {
  33. private final Logger logger = LoggerFactory.getLogger(this.getClass());
  34. //Spring Boot 提供了一个发送邮件的简单抽象,使用的是下面这个接口,这里直接注入即可使用
  35. @Autowired
  36. private JavaMailSender mailSender;
  37. // 配置文件中我的163邮箱
  38. @Value("${spring.mail.from}")
  39. private String from;
  40. /**
  41. * 简单文本邮件
  42. * @param to 收件人
  43. * @param subject 主题
  44. * @param content 内容
  45. */
  46. @Override
  47. public void sendSimpleMail(String to, String subject, String content) {
  48. //创建SimpleMailMessage对象
  49. SimpleMailMessage message = new SimpleMailMessage();
  50. //邮件发送人
  51. message.setFrom(from);
  52. //邮件接收人
  53. message.setTo(to);
  54. //邮件主题
  55. message.setSubject(subject);
  56. //邮件内容
  57. message.setText(content);
  58. //发送邮件
  59. mailSender.send(message);
  60. }
  61. /**
  62. * html邮件
  63. * @param to 收件人,多个时参数形式 :"xxx@xxx.com,xxx@xxx.com,xxx@xxx.com"
  64. * @param subject 主题
  65. * @param content 内容
  66. */
  67. @Override
  68. public void sendHtmlMail(String to, String subject, String content) {
  69. //获取MimeMessage对象
  70. MimeMessage message = mailSender.createMimeMessage();
  71. MimeMessageHelper messageHelper;
  72. try {
  73. messageHelper = new MimeMessageHelper(message, true);
  74. //邮件发送人
  75. messageHelper.setFrom(from);
  76. //邮件接收人,设置多个收件人地址
  77. InternetAddress[] internetAddressTo = InternetAddress.parse(to);
  78. messageHelper.setTo(internetAddressTo);
  79. //messageHelper.setTo(to);
  80. //邮件主题
  81. message.setSubject(subject);
  82. //邮件内容,html格式
  83. messageHelper.setText(content, true);
  84. //发送
  85. mailSender.send(message);
  86. //日志信息
  87. logger.info("邮件已经发送。");
  88. } catch (Exception e) {
  89. logger.error("发送邮件时发生异常!", e);
  90. }
  91. }
  92. /**
  93. * 带附件的邮件
  94. * @param to 收件人
  95. * @param subject 主题
  96. * @param content 内容
  97. * @param filePath 附件
  98. */
  99. @Override
  100. public void sendAttachmentsMail(String to, String subject, String content, String filePath) {
  101. MimeMessage message = mailSender.createMimeMessage();
  102. try {
  103. MimeMessageHelper helper = new MimeMessageHelper(message, true);
  104. helper.setFrom(from);
  105. helper.setTo(to);
  106. helper.setSubject(subject);
  107. helper.setText(content, true);
  108. FileSystemResource file = new FileSystemResource(new File(filePath));
  109. String fileName = filePath.substring(filePath.lastIndexOf(File.separator));
  110. helper.addAttachment(fileName, file);
  111. mailSender.send(message);
  112. //日志信息
  113. logger.info("邮件已经发送。");
  114. } catch (Exception e) {
  115. logger.error("发送邮件时发生异常!", e);
  116. }
  117. }
  118. }

主要使用以下依赖来发送邮件(不需要复制进代码)

  1. @Autowired
  2. private JavaMailSender mailSender;

用Controller实现代码的交互,查看邮箱成功

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号