- 在pom.xml添加依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency>
- application.yml配置邮件端口信息
# 邮件发送 配置 mail: host: smtp.qq.com # qq的SMTp服务器地址 port: 587 # qq 的SMTP 服务器端口 username: **********@qq.com #发送者的邮件地址 password: gsrewryssddfsdf # 不是邮箱地址,而是qq邮箱的授权码,在qq设置里面开通,纯数字要用引号括起来
- 创建一个邮件工具类
@Component public class Util { @Autowired private JavaMailSender mailSender; // 邮件发送 @Async public void sm(String jobNumber, String text) { SimpleMailMessage mailMessage = new SimpleMailMessage(); mailMessage.setFrom(jobNumber); // 邮件发送人 mailMessage.setTo("*******9@qq.com"); // 邮件接收人 mailMessage.setSubject("邮件功能测试"); // 邮件主题 mailMessage.setText("https://www.baidu.com" + text); // 邮件内容 try { this.mailSender.send(mailMessage); } catch (Exception exception) { exception.printStackTrace(); } } }
- 测试(只要引入邮件工具类,在需要的地方调用即可)
@SpringBootTest class MoldMangerSystemApplicationTests { @Autowired private Util util; @Test void contextLoads() { util.sm("**********@qq.com", "我是熊猫"); } }
以上就是发送邮件的核心代码,但它每次只能发送给一个人,如何将一封邮件发送给多个人呢,只需要将目标邮箱封装成一个集合,邮件工具类的方法用集合接收对参数稍作处理,setTo() 方法可以支持接收多个字符串数组,可自行查看 setTo() 方法的源码。
@Component public class Util { @Autowired private JavaMailSender mailSender; // 邮件发送 @Async public void sm(List<String> emailList, String text) { if (emailList.size() > 0) { String str = emailList.stream().collect(Collectors.joining(",")); // 输出 "a,b,c" String[] to = str.split(","); // 利用split分割 输入一个字符串数组, {"a","b","c"} SimpleMailMessage mailMessage = new SimpleMailMessage(); mailMessage.setFrom("*********@qq.com"); // 邮件发送人 mailMessage.setTo(to); // 邮件接收人 mailMessage.setSubject("邮件测试"); // 邮件主题 mailMessage.setText(text); // 邮件内容 try { this.mailSender.send(mailMessage); } catch (Exception exception) { exception.printStackTrace(); } } } }
基于SpringBoot发送邮件
最新推荐文章于 2024-11-14 21:50:35 发布