1. 程式人生 > >springboot傳送郵件問題總結

springboot傳送郵件問題總結

springboot內部集成了spring的郵件傳送功能,所以在使用springboot進行郵件傳送的時候需要在maven中加入以下依賴。

<dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-mail</artifactId>
</dependency>

如果只是引入就能夠使用的話,我就不會記錄這個部落格了,總結一下我遇到的問題和解決辦法。

1.我是以163作為我的郵箱主機進行郵件傳送的,使用163傳送郵件需要開啟POP3服務協議(這裡會讓輸入賬號和密碼,這裡輸入的賬號和密碼才是專案裡面使用的專案和密碼

)。

2.在“application.properties”配置檔案中加入以下配置(這裡需要注意的是我們的屬性後面不能有空格,習慣敲空格的小夥伴需要注意一下)。

spring.mail.host=smtp.163.com
spring.mail.username=自己的郵箱
spring.mail.password=設定的密碼
spring.mail.properties.smtp.auth=true
spring.mail.properties.smtp.starttls.enable=true
spring.mail.properties.smtp.starttls.required=true
spring.mail.properties.mail.smtp.socketFactory.port=465

3.在使用的時候需要注意的是我們要從“application.properties”配置檔案中讀取屬性值,在程式碼中需要注意的是正確的取值方式,比如:

正確:
@Value("${spring.mail.username}")
private String from;

錯誤:
@Value("{spring.mail.username}")
private String from;

沒發現上面程式碼有區別的小夥伴仔細看看喲,不要和我犯一樣的錯誤。

4.當這些坑我一一跳出之後,卻發現了沒有辦法給別人傳送郵件,給的提示是:郵件為垃圾郵件。這個時候就需要仔細檢查寫的郵件內容了,我避免了比較敏感的詞彙,但還是被識別為垃圾郵件,於是試著本賬號給本賬號發郵件,果然成功。然後試著傳送給別人抄送給自己,還是出bug,接著試著給自己發,抄送給別人,沒有問題。我仔細看了郵件之後發現我的標題為空,沒有設定,新增上標題之後,成功傳送。

總結上面的測試:

給別人發--------------------沒有標題 ----------------失敗(垃圾郵件)

給自己發抄送別人--------沒有標題-----------------成功

給別人發抄送給自己-----沒有標題-----------------失敗(垃圾郵件)

給別人發-------------------- 有標題--------------------成功

PS:至於怎麼傳送郵件,以及怎麼使用,大家可以自行學習。