SpringBoot 整合Mail傳送功能問題與解決
在專案中,傳送郵件功能還是非常常見的,最近將郵件功能整合到springboot中,程式碼已經提交到branch-mail分支上,具體事項請檢視README.MD上的說明。
這裡記錄下整合郵件功能遇到的問題與解決辦法。
第一步 匯入引入相關jar
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version >4.3.2.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/javax.mail/mail -->
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.7</version >
</dependency>
第二步 在config/application.properties上配置相關資訊,這裡demo用的是163郵箱
spring.mail.from=**@163.com
spring.mail.host=smtp.163.com
spring.mail.password=郵箱安全密碼
spring.mail.properties.smtp.auth=true
spring.mail.properties.smtp.timeout=25000
spring.mail.username=**@163.com
配置完以上資訊後就可以直接執行單元測試的了
com.cml.springboot.controller.test.MailSenderTest
具體功能請檢出工程後自行測試。
問題1 傳送郵件535錯誤
org.springframework.mail.MailAuthenticationException: Authentication failed; nested exception is javax.mail.AuthenticationFailedException: 535 Error: authentication failed
問題1解決
問題是因為配置檔案中配置的郵箱密碼是登入密碼而不是安全密碼導致的,直接將密碼修改成安全密碼就可以了(163郵箱在開啟smtp服務時會要求輸入安全密碼的)
問題2
問題2解決
引發次問題是因為此郵件觸發了163郵箱伺服器反垃圾規則,測試郵件傳送的內容是:”你好!試試”,這樣也能出發反垃圾規則,感覺莫名其妙,把內容改為”1111111”,郵件正常傳送。所以傳送郵件的時候需要具體檢視下163郵件的規則。具體原因在錯誤上已經提示了,到網址:http://mail.163.com/help/help_spam_16.htm?ip=220.179.147.26&hostid=smtp10&time=1483866477上檢視即可