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