SpringBoot QQ郵箱發(fā)送郵件實例代碼
SpringBoot整合郵件任務(wù)(QQ郵箱發(fā)送)
1.獲取QQ郵箱授權(quán)碼

2.導(dǎo)入郵箱發(fā)送依賴啟動器
使用定制郵件模板的方法實現(xiàn)通用郵件發(fā)送,Thymeleaf構(gòu)建郵件模板需要一起導(dǎo)入依賴。
<!-- Mail -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
<!-- thymeleaf模板依賴 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
3.配置文件yml添加郵件服務(wù)配置
# Spring配置
spring:
mail:
host: smtp.qq.com
username: ********@qq.com
# password是第一步QQ郵箱開通的smtp服務(wù)后得到的客戶端授權(quán)碼
password: ******************
default-encoding: UTF-8
properties:
mail:
smtp:
auth: true
starttls:
enable: true
required: true
#thymeleaf模板引擎配置太簡單,就不貼出來了
4.編寫接口IMailService
public interface IMailService {
void sendHtmlMailThymeLeaf(String mailFrom, String mailFromNick, String mailTo, String cc, String subject, String content);
}
5.編寫實現(xiàn)MailServiceImpl
@Service
public class MailServiceImpl implements IMailService {
/**
* JavaMailSender是Spring Boot在MailSenderPropertiesConfiguration 類中配直好的,該類在 Mail
* 自動配置類 MailSenderAutoConfiguration 中導(dǎo)入 因此這里注入 JavaMailSender 就可以使用了
*/
@Autowired
private JavaMailSender mailSender;
@Override
public void sendHtmlMailThymeLeaf(String mailFrom, String mailFromNick, String mailTo, String cc, String subject, String content) {
MimeMessage mimeMessage = mailSender.createMimeMessage();
try {
MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, true);
mimeMessageHelper.setFrom(new InternetAddress(mailFromNick + " <" + mailFrom + ">"));
// 設(shè)置多個收件人
String[] toAddress = mailTo.split(",");
mimeMessageHelper.setTo(toAddress);
if (!StringUtils.isEmpty(cc)) {
mimeMessageHelper.setCc(cc);
}
mimeMessageHelper.setSubject(subject);
// 第二個參數(shù)為true表示郵件正文是html格式的,默認是false
mimeMessageHelper.setText(content, true);
mailSender.send(mimeMessage);
} catch (MessagingException e) {
System.out.println(e);
}
}
}
6.Controller調(diào)用
// 發(fā)件人要跟yml配置文件里填寫的郵箱一致
String mailFrom = "******@qq.com";
// 收件人
String mailTo = "******@qq.com,******@qq.com";
// 抄送(可為空)
String cc = "******@qq.com";
// 注入mailService
@Autowired
private IMailService mailService;
// 注入TemplateEngine
@Autowired
TemplateEngine templateEngine;
@RequestMapping("/other/test")//請求路徑
@ResponseBody
public void testMail() {
//注意1:這里我是查詢對應(yīng)的內(nèi)容,使用富文本編輯器存儲html標簽的內(nèi)容
Strategy strategy = strategyService.selectStrategyByStrategyId(Long.valueOf(1));
Context context = new Context(); // 導(dǎo)包是org.thymeleaf.context
//注意2:獲取發(fā)送的內(nèi)容傳入thymeleaf模板中
context.setVariable("content", strategy.getStrategyContent());
String content = templateEngine.process("mailTemplate.html", context);
//System.out.println(content);
mailService.sendHtmlMailThymeLeaf(mailFrom, "定義發(fā)件人名字", mailTo, cc, "定義郵件標題", content);
System.out.println("郵件發(fā)送成功");
}
7.thymeleaf模板 mailTemplate.html
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>郵件發(fā)送</title>
</head>
<body>
<!--使用富文本框包含HTML標簽 使用 th:utext標簽 會解析html,顯示相應(yīng)的效果-->
<div th:utext="${content}">Some escaped text</div>
</body>
</html>
總結(jié)
到此這篇關(guān)于SpringBoot QQ郵箱發(fā)送郵件實例代碼的文章就介紹到這了,更多相關(guān)SpringBoot 郵箱發(fā)信內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java并發(fā)學習之BlockingQueue實現(xiàn)生產(chǎn)者消費者詳解
這篇文章主要介紹了java并發(fā)學習之BlockingQueue實現(xiàn)生產(chǎn)者消費者詳解,具有一定參考價值,需要的朋友可以了解下。2017-11-11
Java實現(xiàn)學生信息管理系統(tǒng)IO版本
這篇文章主要為大家詳細介紹了Java實現(xiàn)學生信息管理系統(tǒng)IO版本,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-04-04
Java 發(fā)送http請求(get、post)的示例
這篇文章主要介紹了Java 發(fā)送http請求的示例,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下2020-10-10
SpringBoot+MyBatis-Plus實現(xiàn)分頁的項目實踐
MyBatis-Plus是基于MyBatis的持久層增強工具,提供簡化CRUD、代碼生成器、條件構(gòu)造器、分頁及樂觀鎖等功能,極大簡化了開發(fā)工作量并提高了開發(fā)效率,本文就來介紹一下SpringBoot+MyBatis-Plus實現(xiàn)分頁的項目實踐,感興趣的可以了解一下2024-11-11
Java多線程之JUC(java.util.concurrent)的常見類(多線程編程常用類)
這篇文章主要給大家介紹了關(guān)于Java多線程之JUC(java.util.concurrent)的常見類(多線程編程常用類)的相關(guān)資料,Java中的JUC(java.util.concurrent)包提供了一些并發(fā)編程中常用的類,這些類可以幫助我們更方便地實現(xiàn)多線程編程,需要的朋友可以參考下2024-02-02
SpringBoot?JavaMailSender發(fā)送郵件功能(實例詳解)
JavaMailSender是Spring提供的,非常好用的,實現(xiàn)郵件發(fā)送的接口 ,這篇文章主要介紹了SpringBoot?JavaMailSender發(fā)送郵件功能,需要的朋友可以參考下2024-03-03
Spring配置動態(tài)數(shù)據(jù)源實現(xiàn)讀寫分離的方法
這篇文章主要介紹了利用Spring配置動態(tài)數(shù)據(jù)源實現(xiàn)讀寫分離的方法,文中通過示例代碼介紹的很詳細,相信對大家的理解和學習具有一定的參考借鑒價值,藕需要的朋友可以一起學習學習。2017-01-01

