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

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

而後在本地一切都正常,放到我的服務器上就涼了。git

由於這個項目註冊須要郵箱激活,而後就在發郵件的時候出了問題。github

1、發送端口安全

由於源程序是用25端口發email的,而後我排雷排了很久纔看到那個異常,服務器

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

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

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

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

發送端口不用25,用465就能夠了。具體程序大家搜索一下吧,反正我也是複製粘貼的。
code

2、郵件亂碼

好不容易能發送了郵件,然而郵件倒是亂碼,崩潰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有了更深的應用了。嘻嘻。

下面是我掛在服務器的項目地址。

http://yellowgg.cn:8080/sssmshop/index

項目github:https://github.com/yellowgg/sssmshop

 

Fork me on GitHub

相關文章
相關標籤/搜索