javaEmail用QQ郵箱發郵件是問號亂碼,已解決


寒假學習了ssm,就把之前看過的一個商城項目用ssm重構了。

然后在本地一切都正常,放到個人服務器上就涼了。

因為這個項目注冊需要郵箱激活,然后就在發郵件的時候出了問題。

一、發送端口

因為源程序是用25端口發email的,然后我排雷排了好久才看到那個異常,

具體是什么我忘了記下來了,反正是說25端口不能用。

后來我就查資料,說是服務器商為了防止垃圾郵件,就把25端口禁掉了。

然后我就想,這還不簡單,在安全組開放不就行了,然而打臉的是,還真不行。

要想開放,必須得找服務器商開啟,還很麻煩,只能換一條路了。

后面看到騰訊郵箱的文檔,才知道可以用別的端口。

文檔鏈接

其中有

 

發送端口不用25,用465或者587就可以了,我這里用的是465

二、郵件亂碼

好不容易能發送了郵件,然而郵件卻是亂碼,崩潰ing

繼續找解決辦法,網上各種方法都試過了,都不行。

功夫不負有心人,后來我狠着頭皮看stackoverflow,慢慢的看,就找到了解決方法。

一試還真行。

首先是標題部分,也就是subject

1 //修改編碼
2         String subject = "郵件標題";
3         String encodedSubject = MimeUtility.encodeText(subject, MimeUtility.mimeCharset("gb2312"), null);
4         msg.setSubject(encodedSubject);
View Code

然后是正文部分

1 //設置郵件消息
2         msg.setContent(emailContent, "text/html;charset=UTF-8");
View Code

我這樣修改之后就解決了

我之前發正文的代碼是

// msg.setText(emailContent);

總算解決了。可以安心返校了,寒假過年也沒偷懶,把這個項目重構讓我對ssm有了更深的應用了。嘻嘻。

然后我把Demo掛在我的服務器上了,可以玩一下。

服務器Demo

項目github地址

歡迎fork或star! 

Fork me on GitHub


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM