SpringBoot整合SpringEmail 批量发送邮件
前言:公司目前有个业务就是向订阅了客户发送邮件,所以我把这块的内容记录下来
1.引入依赖
<!-- email-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
2. 开始邮箱设置
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";
}
发送成功!!!
上面批量发送这么写的原因是因为,SimpleMailMessage类中设置发送邮箱的API有两个,而其中的this.to为一个数组对象,即setTo数组就可批量发送
##### ==走过路过点个赞吧,满足一下虚荣心!==