1. 在linux環境下javamail 接收郵件後,郵件的標題和內容總是出現亂碼,應如何解決
首先確認你自己是否使用了GBK
如果沒有就是GBK的問題
如果你使用了GBK還是亂碼,可能跟我前回幾天一樣是中文字答加幾個亂碼(中文字是你自己輸的)
這個不是linux的問題
我們前幾天學javamail 我也遇到過同樣問題
後來自己解決了
我解決的方法是不要直接獲取你的輸入就當郵件的標題或者內容
把你的通過輸入流獲取的標題或者內容先放到一個無關的中間變數空間里
然後發郵件的時候直接從這個變數里讀取內容
我自己這么弄就好了,不亂碼了...
具體會產生這樣的原因我也不知道......
2. javamail接收郵件時主題的亂碼問題
這個過程來比較復雜,首先,你要使用源msg.getContentType()來獲取contenttype,找出裡面的charset=來獲取編碼,如果這裡面沒有編碼,則使用getHeader方法來獲取"From","To","Subject"中的編碼(至少會有一個有),這裡面的編碼以"=?"開頭(形式一般為=?GBK?B?之類,其中的GBK就是編碼),獲取編碼後,對應使用
String subject = msg.getHeader("Subject", ",", false);//優先使用getHeader來獲取內容,不要使用getSubject,那個經過一次編碼處理,你以後會很麻煩
if (!StringUtil.isNull(你獲取的編碼)
&& StringUtil.isNull(ParseCode.getCharSet(subject))) {//郵件主題中不含編碼,則使用從From或To中獲取的編碼
subject = new String(subject.getBytes("ISO8859_1"),
你獲取的編碼);//這里轉碼
}
這樣你就能獲取所有中文主題了
3. 如何解決JAVAMAIL發送html格式郵件時的亂碼問題
是由抄於編碼不同造成的亂碼,應首先試一試轉換編碼的方法。因為這種編碼大多出現在中文郵件上。因此,當亂碼出現時首先應當檢查編碼方式是否為「簡體中文(GB2312)」,如果不是可用滑鼠點取「查看」菜單下的「編碼」選項,選中「簡體中文(GB2312)」編碼方式,如果不行,切換成其他編碼試試,通常問題都能得到解決。
4. javamail中郵件主題及內容亂碼的問題
msg.setSubject("=?utf-8?"XXXXXXXXXXXXXXXXXXX");
主題中,寫明是什麼編碼了,你還用別的編碼解。
5. Java 發送郵件是出現亂碼 亂碼結果如下:
如果是中文亂碼可以通過設置編碼來解決
6. 有關javamail的郵件附件的路徑和文件名中文亂碼問題
你可以試試javamail包中自復帶的編碼解碼制方法
import javax.mail.internet.MimeUtility; 包
// 解決文件名的中文問題
MimeUtility.decodeText(「attachment」);
// 解決標題的中文問題
MimeUtility.encodeText(」subject「);
這兩個方法應該可以解決你的問題,我就是用的這兩個方法