1 分鐘教會你用 Spring Boot 發郵件
org.springframework.mail.javamail.JavaMailSender
Spring Boot 提供了一個 starter,並能自動配置,下面來做個小例子,順便解析它做了什麽工作。
0、你所需具備的基礎
什麽是 Spring Boot?
Spring Boot 核心配置文件詳解
Spring Boot 開啟的 2 種方式
Spring Boot 自動配置原理、實戰
Spring Boot 2.x 啟動全過程源碼分析
更多請在Java技術棧微信公眾號後臺回復關鍵字:boot。
1、添加依賴
在 Maven pom.xml 配置文件中加入 spring-boot-starter-mail 依賴。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
2、添加配置參數
然後在 application.properties 文件中加入以下配置。
spring.mail.host=smtp.exmail.qq.com [email protected] spring.mail.password=123456 # 啟動SSL時的配置 spring.mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory spring.mail.smtp.socketFactory.fallback=false spring.mail.smtp.socketFactory.port=465
3、一個簡單的發送郵件例子
寫一個控制器,寫一個簡單的發送郵件的小例子,發送成功返回 true,發送失敗返回 false。
@Autowired private JavaMailSender javaMailSender; @RequestMapping("/sendEmail") @ResponseBody public boolean sendEmail() { SimpleMailMessage msg = new SimpleMailMessage(); msg.setFrom("[email protected]"); msg.setBcc(); msg.setTo("[email protected]"); msg.setSubject("Java技術棧投稿"); msg.setText("技術分享"); try { javaMailSender.send(msg); } catch (MailException ex) { System.err.println(ex.getMessage()); return false; } return true; }
4、自動配置都做了什麽?
Spring Boot 發現類路徑下有這個 spring-boot-starter-mail 包和 spring.mail.host 參數就會自動配置 JavaMailSenderImpl。
上面那些 spring.mail.xx 參數用來裝配 MailProperties 這個類
`org.springframework.boot.autoconfigure.mail.MailProperties```
自動配置類:
org.springframework.boot.autoconfigure.mail.MailSenderAutoConfiguration
org.springframework.boot.autoconfigure.mail.MailSenderPropertiesConfiguration
其實就是用了上面裝配的參數註冊了一個 JavaMailSenderImpl 實例而已,然後你就可以註入使用了。
1 分鐘教會你用 Spring Boot 發郵件