javamail發郵件亂碼

1.郵件標題亂碼

郵件標題的亂碼很好解決,使用MimeUtility類即可進行轉換。代碼如下:

 

mailMessage.setSubject(MimeUtility.encodeText(mailInfo.getSubject(),MimeUtility.mimeCharset("gb2312"), null));

這裏的gb2312也可以改爲utf-8。

 

 

2.英文windows郵件正文亂碼

在我本機上郵件正文並沒有出現亂碼,但是將程序放在了英文windows server上,就出現了亂碼。非常奇怪,後來發現如果將中文直接輸入到參數中並不會有亂碼,但是如果通過文件讀取html文件就會有亂碼。問題鎖定爲讀取文件,讀取文件代碼如下:

 

我測試發現如果在中文系統中讀取文件必須要將encode設置爲gb2312,在英文的windows上必須設置爲iso-8859-1。否則不能正確讀出中文。我以爲這樣解決了問題,結果郵件正文還是亂碼!爲啥了?我想了下也行是我郵件中設置了編碼是utf-8造成的,將utf-8統一改爲gb2312就可以了!看來utf-8並不是萬能的。總結下即讀取文件時用gb2312,發郵件時也要統一成gb2312。不用改爲utf-8。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章