SpringBoot傳送郵件
阿新 • • 發佈:2018-12-15
1.實用idea 新建一個springboot 專案
2.在專案的maven 依賴中新增如下 依賴
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
3.在application.properties 中新增 郵箱傳送賬號的資訊
spring.mail.host="smtp.163.com" spring.mail.username=郵箱賬號 #傳送方的郵箱 spring.mail.password=驗證碼或者授權碼 spring.mail.properties.mail.smtp.auth=true spring.mail.properties.mail.smtp.starttls.enable=true spring.mail.properties.mail.smtp.starttls.required=true
第三部挺鬧心的,配置的時候要小心一點,一開始實用的是qq的郵箱,使用的是qq郵箱的使用總是報錯誤。
Could not connect to SMTP host: smtp.qq.com, port: 25;
後來查到是因為埠不對 ,埠程式設計465了,後來改了一下還是不對,最後直接放棄了。這裡面應該有什麼地方沒設定好,好了,就先不管了,轉戰網易郵箱,親測有效。
目前網易郵箱個qq郵箱的配置都是使用授權碼了,不是密碼,這個要稍微區別一下。 所以上面的spring.mail.password不要填寫郵箱的登入密碼
先到郵箱的設定
首先檢視的是smtp 協議有沒有開啟
開啟以後 再點選客戶端授權密碼
網易郵箱比較好的地方在於可以自定義授權碼,而qq郵箱的授權碼是隨機生成的
4.程式碼
配置一切都ok以後,下面就是上程式碼了,這個相對是比價簡單的
新建一個Control 在裡面寫上如下程式碼
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.mail.SimpleMailMessage; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class Test { @Autowired JavaMailSender jms; @GetMapping("/send") public String send(){ //建立郵件訊息 SimpleMailMessage mainMessage = new SimpleMailMessage(); //傳送者 mainMessage.setFrom("配置檔案的郵箱賬號@163.com"); //接收者 mainMessage.setTo("接收人"); //傳送的標題 mainMessage.setSubject("測試標題"); //傳送的內容 mainMessage.setText("這個是測試的內容"); jms.send(mainMessage); return "ok"; } }
等介面返回ok 後,登入到郵箱看下
一切都是ok 的