天天看點

【異常】——javax.mail發送郵件過程常見錯誤前提問題一問題二問題三總結

前提

    最近開發發送郵件功能,出現一些問題,特此記錄一下。小編開發過程一直都是單元測試,可以發送成功,但是從swagger就是一直提示錯誤。

問題一

其實翻譯一下錯誤,文法不對。

再加上小編出現錯誤的前提,功能肯定可以能用,是以懷疑對象為傳輸過程出現了問題。使用debug調試了一下,發現傳輸過程過程郵箱位址錯誤。因為郵件位址用含有特殊字元,是以“@”以及後面的内容沒有成功傳輸。

解決方案

之前郵件位址當成字元串傳遞,現在吧郵箱位址放到Json對象中傳遞。

問題二

翻譯一下,認證失敗。

1、檢查郵件賬戶名稱和密碼是否正确。(使用QQ郵箱,需要在密碼的地方輸入授權碼)

2、判斷郵件是否開啟POP3以及SMTP

3、檢查配置中smtpHost是否為使用郵箱伺服器的主機位址。

4、檢查配置中smtpPort端口号,如果沒有加密則為25,加密則為465

問題三

本機發送不亂碼,伺服器測試環境發送郵件均為亂碼

經驗告訴我,亂碼肯定是編碼問題!

//message.setSubject(subject);
  message.setSubject(MimeUtility.encodeText(subject, "UTF-8", "B"));
           

第一句在本機測試沒有問題,伺服器上亂碼

第二句本機伺服器上均正常!

總結

    遇到問題,一定要真正了解問題的根源,減少拿着問題大海撈針的檢索,從根本上提高解決問題的效率。

繼續閱讀