<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    HelloWorld 善戰者,求之于勢,不責于人;故能擇人而任勢。

    知止而后有定,定而后能靜,靜而后能安,安而后能慮,慮而后能得。物有本末,事有終始。知所先后,則近道矣。

      BlogJava :: 首頁 ::  :: 聯系 ::  :: 管理 ::
      167 隨筆 :: 1 文章 :: 40 評論 :: 0 Trackbacks

    近日,發現gmail開放了IMAP服務,于是想著iOffice的WebMail功能是否能夠對應Gmail呢? 雖然不用想都知道WebMail方面,不可能做的比gmail更好。但是出于一種功能驗證的考慮,還是進行了嘗試用iOffice的WebMail去連接gmail的郵件賬戶。

    這一連接,發現WebMail只支持pop3/imap/smtp的protocol,而對gmail的pop3 ssl/imap ssl/smtp ssl的安全連接都不支持,于是奮力去修改,終于今天搞定了。

    接著為了測試郵件的多樣性,從Hotmail賬戶當中轉移了一部分郵件進入gmail的IMAP Folder,發現英國金融時報旗下的FT中文網發送的新聞郵件,居然無法在WebMail中顯示,出現Exception.

    java.io.IOException: Unknown encoding: GB2312
    at javax.mail.internet.MimePartDataSource.getInputStream(MimePartDataSource.java:108)
    at com.sun.mail.handlers.text_plain.getContent(text_plain.java:90)
    at javax.activation.DataSourceDataContentHandler.getContent(DataHandler.java:775)
    at javax.activation.DataHandler.getContent(DataHandler.java:522)
    at javax.mail.internet.MimeMessage.getContent(MimeMessage.java:1395)

    覺得很奇怪,GB2312肯定屬于Java認識的encoding啊? 為什么會出這種信息呢? 仔細檢查此郵件的源碼,以及查閱資料。發現此處所說的Encoding并非是Java Encoding。 而是郵件的一種自有的編碼。 該新聞郵件的編碼

    Date: Thu, 20 Aug 2009 09:09:16 +0800
    MIME-Version: 1.0
    Content-Type: text/html; charset=”gb2312″
    Content-Transfer-Encoding: gb2312
    Message-ID: 1250730614939471@200809NewsLetter

    該郵件的發送程序把 text/html charset=gb2312的編碼部分,當作Content-Transfer-Encoding的編碼,而實際上JavaMail認識的Content-Transfer-Encoding包含如下幾種:”base64″, “quoted-printable”, “7bit”, “8bit”, “binary”, “uuencode”。

    原則上針對這種錯誤格式的郵件,可以不對應,但是考慮到未來可能還有別的問題,于是直接去修改 javax.mail.internet.MimePartDataSource.java,

    public InputStream getInputStream() throws IOException {
    InputStream is;

    try {
    if (part instanceof MimeBodyPart)
    is = ((MimeBodyPart)part).getContentStream();
    else if (part instanceof MimeMessage)
    is = ((MimeMessage)part).getContentStream();
    else
    throw new MessagingException(“Unknown part”);
    String encoding = restrictEncoding(part.getEncoding(), part);
    if (encoding != null){
    if(encoding.equalsIgnoreCase(“GB2312″) ||
    encoding.equalsIgnoreCase(“GBK”)){
    encoding = “7bit”;
    }

    return MimeUtility.decode(is, encoding);
    }else{
    return is;
    }
    } catch (MessagingException mex) {
    throw new IOException(mex.getMessage());
    }
    }

    編譯好以后,放回 sun-javamail-1.4.2.jar,執行一遍后,OK了。



    </script>

    posted on 2010-10-09 13:38 helloworld2008 閱讀(1615) 評論(0)  編輯  收藏 所屬分類: java
    主站蜘蛛池模板: 国产高清视频在线免费观看| 中文字幕在线观看亚洲日韩| 国产一区二区免费在线| 日韩精品无码专区免费播放| 污视频网站免费观看| 亚洲人成网国产最新在线| 久久久久久亚洲Av无码精品专口 | 久久亚洲AV成人无码| 中文字幕无码精品亚洲资源网| 日韩一级在线播放免费观看| 久久99九九国产免费看小说| 久久久久国产精品免费免费不卡| 丰满妇女做a级毛片免费观看| 亚洲爆乳无码专区www| 在线综合亚洲中文精品| 亚洲成a人片在线观看中文app| 亚洲AV综合色区无码一区爱AV| 亚洲综合亚洲综合网成人| 免费一级毛片在线观看| 看全色黄大色大片免费久久| 成年女人毛片免费播放人| 真人做人试看60分钟免费视频| 免费人成在线观看网站品爱网| 日本免费中文字幕| 国产一级片免费看| 国产偷伦视频免费观看| 免费日本一区二区| 日韩免费电影网址| 久久中文字幕免费视频| 久久一区二区三区免费播放| 久久国产免费一区二区三区| A级毛片高清免费视频在线播放| 一级片在线免费看| 久久久久久久国产免费看| 国产免费高清69式视频在线观看| 五月天国产成人AV免费观看| 一级毛片一级毛片免费毛片 | 自拍偷自拍亚洲精品被多人伦好爽| 亚洲AV成人潮喷综合网| 亚洲欧洲日本在线| 亚洲深深色噜噜狠狠爱网站|