基於Spring Boot傳送 mail
- 傳送簡訊需要簡訊api介面 例如雲片(連結)
- 在很多地方例如使用者註冊後的郵箱啟用,郵箱傳送驗證碼等都會應用
- 在javaEE中其實有提供專門的包用於傳送郵件,官方也有提供專門的api --JavaMail(連結)
- 在springboot 中為郵件傳送提供了專門的包
假設從qq郵箱發一封郵件到163郵箱,大致步驟如下

這個過程設計到了很多個協議
- SMTP 協議全稱為Simple Mail Transfer Protocol譯作簡單郵件傳輸協議,是一個基於TCP/IP的應用層協議
- 預設埠號 25
- 它定義了郵件客戶端軟體於SMTP伺服器之間,以及SMTP伺服器之間的通訊規則
- 簡單的來講,就是用於收發郵件的
- 而使用者登陸郵箱客戶端之後需要讀取郵件,此時就需要POP3/IMAP協議
- POP3 協議全稱為Post Office Protocol,譯作郵局協議,它定義了郵件客戶端與POP3之間的通訊規則
- IMAP 是對 OPO3 的擴充套件,功能更強,作用類似,這裡就不贅述了
具體使用(以qq郵箱為例)
- 在QQ郵箱用開啟 POP3/SMTP服務(預設關閉),在設定-->賬戶中可以檢視

- 生成授權碼

- 建立Spring Boot 專案,引入依賴
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> 複製程式碼
- 在配置檔案中配置基本的配置資訊
# smtp伺服器地址 spring.mail.host=smtp.qq.com # 協議型別 spring.mail.protocol=smtp spring.mail.username=發件郵箱 # 授權碼 spring.mail.password=使用發件郵箱生成的授權碼 spring.mail.default-encoding=UTF-8 spring.mail.port=465 # 加密工具 spring.mail.properties.mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory spring.mail.properties.mail.debug=true 複製程式碼
- 測試傳送一個簡單郵件
@Autowired MailSender mailSender; @Test public void contextLoads() { SimpleMailMessage msg = new SimpleMailMessage(); //收件人 msg.setTo("收件人郵箱"); //郵件主題 msg.setSubject("這是一封測試郵件"); //發件人 msg.setFrom("發件人郵箱"); //郵件內容 msg.setText("hello mail!"); mailSender.send(msg); } 複製程式碼