基于SpringBoot发送邮件

  1. 在pom.xml添加依赖
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-mail</artifactId>
    </dependency>
    
  2. application.yml配置邮件端口信息
    # 邮件发送 配置
    mail:
      host: smtp.qq.com           # qq的SMTp服务器地址
      port: 587                  # qq 的SMTP 服务器端口
      username: **********@qq.com  #发送者的邮件地址
      password: gsrewryssddfsdf    # 不是邮箱地址,而是qq邮箱的授权码,在qq设置里面开通,纯数字要用引号括起来
    
    
  3. 创建一个邮件工具类
    @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();
            }
        }
    
    }
    
  4. 测试(只要引入邮件工具类,在需要的地方调用即可)
    @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();
                }
            }
        }
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值