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

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

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

    HelloWorld 善戰(zhàn)者,求之于勢,不責(zé)于人;故能擇人而任勢。

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

      BlogJava :: 首頁 ::  :: 聯(lián)系 ::  :: 管理 ::
      167 隨筆 :: 1 文章 :: 40 評論 :: 0 Trackbacks

    近日,發(fā)現(xiàn)gmail開放了IMAP服務(wù),于是想著iOffice的WebMail功能是否能夠?qū)?yīng)Gmail呢? 雖然不用想都知道WebMail方面,不可能做的比gmail更好。但是出于一種功能驗(yàn)證的考慮,還是進(jìn)行了嘗試用iOffice的WebMail去連接gmail的郵件賬戶。

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

    接著為了測試郵件的多樣性,從Hotmail賬戶當(dāng)中轉(zhuǎn)移了一部分郵件進(jìn)入gmail的IMAP Folder,發(fā)現(xiàn)英國金融時(shí)報(bào)旗下的FT中文網(wǎng)發(fā)送的新聞郵件,居然無法在WebMail中顯示,出現(xiàn)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認(rèn)識的encoding啊? 為什么會出這種信息呢? 仔細(xì)檢查此郵件的源碼,以及查閱資料。發(fā)現(xiàn)此處所說的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

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

    原則上針對這種錯(cuò)誤格式的郵件,可以不對應(yīng),但是考慮到未來可能還有別的問題,于是直接去修改 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,執(zhí)行一遍后,OK了。



    </script>

    posted on 2010-10-09 13:38 helloworld2008 閱讀(1615) 評論(0)  編輯  收藏 所屬分類: java
    主站蜘蛛池模板: 国产精品成人免费综合| 亚洲av无码无线在线观看| 久久综合给合久久国产免费| 国产亚洲精品国产| 一级人做人爰a全过程免费视频| www.亚洲精品.com| 一级A毛片免费观看久久精品| 亚洲国产精品成人网址天堂| 色婷婷综合缴情综免费观看| 亚洲黄片手机免费观看| 永久免费精品影视网站| 亚洲中文字幕成人在线| 国产成人无码精品久久久久免费 | 精品免费tv久久久久久久| 亚洲人成人网站色www| 免费av片在线观看网站| 色婷婷六月亚洲婷婷丁香| 在线成人爽a毛片免费软件| 成人性生交视频免费观看| 亚洲小说图区综合在线| 超pen个人视频国产免费观看| 久久精品国产亚洲AV未满十八| 国产一区二区三区在线免费观看| 猫咪免费观看人成网站在线| 久久国产成人亚洲精品影院| 永久免费AV无码网站国产| 亚洲专区先锋影音| 免费A级毛片无码无遮挡内射| 亚洲欧美日韩中文无线码| 国产99视频精品免费视频7| 七次郎成人免费线路视频| 亚洲av无码专区在线播放| 91精品国产免费久久国语麻豆| 亚洲人成影院在线高清| 成人免费午夜视频| 男人扒开添女人下部免费视频| 亚洲熟妇丰满多毛XXXX| 久久久久高潮毛片免费全部播放 | 免费观看AV片在线播放| 亚洲狠狠色丁香婷婷综合| 亚洲国产婷婷综合在线精品|