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:至於怎麼傳送郵件,以及怎麼使用,大家可以自行學習。