SpringBoot整合SpringEmail 批量发送邮件

SpringBoot整合SpringEmail 批量发送邮件

前言:公司目前有个业务就是向订阅了客户发送邮件,所以我把这块的内容记录下来

1.引入依赖

        <!--  email-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-mail</artifactId>
        </dependency>

2. 开始邮箱设置

SpringBoot整合SpringEmail 批量发送邮件_第1张图片

3. 在application中写入配置信息

spring:
  mail:
    host: smtp.163.com #SMTP服务器地址 
    username: ******* #登陆账号
    password: ******* #登陆密码(或授权码)
    default-encoding: utf-8
    properties:
      from: ******* #邮件发信人(即真实邮箱)
      mail:
        smtp:
          auth: true
          starttls:
            enable: true
            required: true

smtp.exmail.qq.com 是QQ邮箱的,用网易邮箱的话就写 smtp.163.com

4.实现类


@Service
public class MailServiceImpl extends MailService {

    @Value("${spring.mail.properties.from}")
    private String mallFrom;
    
    @Resource
    private JavaMailSender javaMailSender;

    @Override
    public String emailMessage(String title, String content) {

		//查询邮箱列表,具体代码我就不写了
        List<String> emailList = ;

        //发送到邮箱
        try {
            SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
            //设置发件人Email
            simpleMailMessage.setFrom(mallFrom);
            //设置邮件主题
            simpleMailMessage.setSubject(title);
            //设置邮件主题内容
            simpleMailMessage.setText(content);
            //批量发送
            String[] emailArray = emailList.stream()..toArray(String[]::new);
            
           javaMailSender.send(simpleMailMessage);

        } catch (Exception e) {
            log.error("SendEmailMessage error: ", e);
            throw new MallBusinessException("发送信息失败: ");
        }

        return "ok";
    }

SpringBoot整合SpringEmail 批量发送邮件_第2张图片

发送成功!!!

上面批量发送这么写的原因是因为,SimpleMailMessage类中设置发送邮箱的API有两个,而其中的this.to为一个数组对象,即setTo数组就可批量发送

SpringBoot整合SpringEmail 批量发送邮件_第3张图片

SpringBoot整合SpringEmail 批量发送邮件_第4张图片##### 走过路过点个赞吧,满足一下虚荣心!

你可能感兴趣的:(spring,boot,java,smtp)