springboot發(fā)送郵件功能的實現(xiàn)代碼
發(fā)郵件是一個很常見的功能,在java中實現(xiàn)需要依靠JavaMailSender這個接口。在springboot項目中需要引入名為 spring-boot-starter-mail 的依賴,如果對郵件的格式有要求的話可以引入可以操作html文件的 spring-boot-starter-thymeleaf 依賴。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
和其他自動化配置模塊一樣,在完成了依賴引入之后,還需要在application.properties中配置相應(yīng)的屬性值,否則運行方法會一直報空指針。
一、新建一個springboot項目。
1、打開idea,點擊左上角工具欄file按鈕 ,新建一個boot項目

2.點擊next ,選擇默認的依賴,常見的有數(shù)據(jù)庫連接,web等
3、點擊finsh,等待boot項目目錄等生成。此時的目錄是不全的需要自己新加java以及resources文件夾。右鍵項目選擇

進行增加操作。
4、然后打開pom文件,引入依賴。
5、打開配置文件,寫上對應(yīng)的參數(shù),

到此項目建成,開始寫測試類。
二、發(fā)送郵件
1、建一個util類,寫一個實現(xiàn)發(fā)送邏輯的業(yè)務(wù)類,沒什么要寫工具類,因為我想發(fā)送郵件的時候可以實現(xiàn)種格式,帶附件帶html樣式以及可以異步操作的郵件,尤其異步大家都知道發(fā)郵件是很耗時的。

2、補一個異步調(diào)用的寫法:
*需要異步的方法加@Async
*需要在啟動類上加開啟異步的方法,@EnableAsync
*注意可能應(yīng)該是因為aop代理的緣故,被調(diào)用方法 和 調(diào)用處的代碼都處在同一個類的話,只是相當于本類調(diào)用,并沒有使用代理類 從而@Async并沒有產(chǎn)生效果,就是在一個工具類。
3、代碼 :帶有附件的郵件
@Test
public void sendAttachmentsMail() {
Context context = new Context();
context.setVariable("agencyName", "11");
context.setVariable("busTypeName", "22");
context.setVariable("busAllowance", 33);
String emailContent = templateEngine.process("emailTeplate", context);
try {
emailService.sendAttachmentsMail(new String[]{"xxx.com"}, "測試提示", emailContent);
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("send mail success!,please wait a few mintens");
}
/**
* fujian
* @throws Exception
*/
@Async
public void sendAttachmentsMail(String[] to, String subject, String contnet) throws Exception {
MimeMessage mimeMessage = mailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
helper.setFrom("xxx.com");
helper.setTo(to);
helper.setSubject(subject);
helper.setText(contnet,true);
Path picturePath = Paths.get("E:\\WorkFiles\\testBill", "test.png");
byte[] bytes = Files.readAllBytes(picturePath);
helper.addAttachment("附件-1.jpg", picturePath.toFile());
mailSender.send(mimeMessage);
}
郵件發(fā)送成功

到此這篇關(guān)于springboot發(fā)送郵件的文章就介紹到這了,更多相關(guān)springboot發(fā)送郵件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MyBatis-Plus與PageHelper依賴的jsqlparser庫沖突
在升級SpringBoot到3.x版本的同時,升級MyBatis-Plus后發(fā)現(xiàn)PageHelper無法使用,原因是MyBatis-Plus和PageHelper都依賴jsqlparser庫,且PageHelper要求特定版本的jsqlparser,解決方法是在項目中排除這兩個庫的jsqlparser依賴,直接引用jsqlparser4.7版本2024-10-10
定時任務(wù)@Scheduled用法及其參數(shù)使用
這篇文章主要介紹了定時任務(wù)@Scheduled用法及其參數(shù)使用,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-08-08
SpringBoot實現(xiàn)前后端分離國際化的示例詳解
Springboot國際化可以幫助使用者在不同語言環(huán)境中構(gòu)建應(yīng)用程序,這樣應(yīng)用程序可以有效地適應(yīng)不同語言文化背景下的用戶需求。本文主要介紹了SpringBoot實現(xiàn)前后端分離國際化的方法,需要的可以參考一下2023-02-02
SpringBoot使用thymeleaf實現(xiàn)一個前端表格方法詳解
Thymeleaf是一個現(xiàn)代的服務(wù)器端 Java 模板引擎,適用于 Web 和獨立環(huán)境。Thymeleaf 的主要目標是為您的開發(fā)工作流程帶來優(yōu)雅的自然模板,本文就來用它實現(xiàn)一個前端表格,感興趣的可以了解一下2022-10-10
Spring Boot集成tablesaw插件快速入門示例代碼
Tablesaw是一款Java的數(shù)據(jù)可視化庫,數(shù)據(jù)解析庫,主要用于加載數(shù)據(jù),對數(shù)據(jù)進行操作(轉(zhuǎn)化,過濾,匯總等),類比Python中的Pandas庫,本文介紹Spring Boot集成tablesaw插件快速入門Demo,感興趣的朋友一起看看吧2024-06-06

