spring boot整合发送邮箱(可一次发送多个)


一。邮箱要先开启IMAP/SMTP服务,开启后会显示授权码,保存下来,这是发送邮件时需要的密码。(我这是qq邮箱)

 

 

 

 

 

 

 

 

 

二。pom.xml,引入依赖

<dependency>

  <groupId>org.springframework.boot</groupId>

  <artifactId>spring-boot-starter-mail</artifactId>

</dependency>

 

三。.properties 添加配置

#qq邮箱
spring.mail.host=smtp.qq.com
spring.mail.username=自己的邮箱
spring.mail.password=开启IMAP/SMTP服务后显示的密码
spring.mail.protocol=smtp
spring.mail.default-encoding=UTF-8

四。写成组件
@Component("EmailTool")
public class EmailTool {

@Value("${spring.mail.username:}")
private String sendEmail;

@Autowired
private JavaMailSender javaMailSender;

/**
* 发送普通邮件
**/
public boolean sendEmail(Map<String, Object> dataMap) {
try {
if (dataMap == null || dataMap.size() <= 0) {
return false;
}
SimpleMailMessage message = new SimpleMailMessage();
//发送邮箱
message.setFrom(sendEmail);
//接收邮箱(可传多个值,如:String[] ems = new String[]{"xxxx@qq.com","xxx@qq.com"})
message.setTo((String[]) dataMap.get("sendToEmail"));
//标题
message.setSubject(dataMap.get("title").toString());
//内容
message.setText(dataMap.get("content").toString());
javaMailSender.send(message);
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}

/**
* 发送HTML邮件,可以整合邮件模板使用,这里就弄简单点
**/
public boolean sendHtmlEmail(Map<String, Object> dataMap) {
try {
if (dataMap == null || dataMap.size() <= 0) {
return false;
}
MimeMessage mimeMessage = javaMailSender.createMimeMessage();
MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage);
mimeMessageHelper.setFrom(sendEmail);
mimeMessageHelper.setTo((String[]) dataMap.get("sendToEmail"));
mimeMessageHelper.setSubject(dataMap.get("title").toString());
//内容,如 <h1>标题</h1><br/><p>这是内容</p>
mimeMessageHelper.setText(dataMap.get("content").toString(), true);

javaMailSender.send(mimeMessageHelper.getMimeMessage());
return true;
} catch (MessagingException e) {
e.printStackTrace();
return false;
}
}
}

五。测试
  @Autowired
  public EmailTool emailTool;
    @Test
public void contextLoads() throws MessagingException {
String[] ems = new String[]{"xxxx@qq.com","xxxx@qq.com"};
Map<String, Object> valueMap = new HashMap<>();
valueMap.put("sendToEmail",ems);
valueMap.put("title", "测试邮件标题");
valueMap.put("content", "测试邮件内容");
emailTool.sendEmail(valueMap);
}



参考文档:
https://www.cnblogs.com/happy4java/p/11205907.html


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM