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

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

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

    狂奔 lion

    自強(qiáng)不息

    Apache commons-Email中文問題的解決辦法

    Apache commons-email是對(duì)javamailAPI的一層封裝,經(jīng)封裝后的發(fā)送郵件的代碼變得極為簡(jiǎn)單,但這里有一個(gè)中文支持的小問題。
    commons-email主要的封裝類是Email類,這是一個(gè)抽象類,該框架給出了SimpleEmail的默認(rèn)實(shí)現(xiàn),但該實(shí)現(xiàn)并不支持中文,即使調(diào)用Email的setCharset也不起作用。
    事實(shí)上,SimpleEmail調(diào)用了Email超類中的setContent方法來設(shè)置郵件內(nèi)容(通過setMsg方法),而在設(shè)置內(nèi)容時(shí),又采用了默認(rèn)的英文字符集,我們只要在代碼中直接調(diào)用email類的setContent方法就可以支持中文了,但要注意setContent具備兩個(gè)參數(shù),第一個(gè)是內(nèi)容對(duì)象,第二個(gè)則是內(nèi)容類型,我們把第二個(gè)參數(shù)設(shè)置為:
    SimpleEmail.TEXT_PLAIN + "; charset=utf-8", 即可。理由如下面源代碼所示:
        public void setContent(Object aObject, String aContentType)
        {
              ......
                // set the charset if the input was properly formed
                String strMarker = "; charset=";
                int charsetPos = aContentType.toLowerCase().indexOf(strMarker);

                if (charsetPos != -1)
                {
                    // find the next space (after the marker)
                    charsetPos += strMarker.length();
                    int intCharsetEnd =
                        aContentType.toLowerCase().indexOf(" ", charsetPos);

                    if (intCharsetEnd != -1)
                    {
                        this.charset =
                            aContentType.substring(charsetPos, intCharsetEnd);
                    }
                    else
                    {
                        this.charset = aContentType.substring(charsetPos);
                    }
                }
            }
        }
        即有一個(gè)文本解析的過程。


     @2008 楊一. 版權(quán)所有. 保留所有權(quán)利

    posted on 2006-08-01 20:14 楊一 閱讀(991) 評(píng)論(2)  編輯  收藏 所屬分類: Java EE

    評(píng)論

    # re: Apache commons-Email中文問題的解決辦法 2007-07-13 19:29 chaoyy@gmail.com

    不好意思,按照上述方法,中文問題依然沒解決。
    multiEmail.setContent(body, SimpleEmail.TEXT_PLAIN + "; charset=utf-8");
    是不是不止這一個(gè)地方需要改?  回復(fù)  更多評(píng)論   

    # re: Apache commons-Email中文問題的解決辦法 2007-12-06 12:41 隔葉黃鶯

    我也有研究過 用 apache commons-email 輕松發(fā)送無亂碼郵件
    http://www.tkk7.com/Unmi/archive/2006/12/07/124065.html

    其中有發(fā)簡(jiǎn)單郵件,以及后面我加評(píng)論補(bǔ)充了發(fā)HTML郵件及帶附件的發(fā)送  回復(fù)  更多評(píng)論   

    <2006年8月>
    303112345
    6789101112
    13141516171819
    20212223242526
    272829303112
    3456789

    導(dǎo)航

    公告

    本人在blogjava上發(fā)表的文章及隨筆除特別聲明外均為原創(chuàng)或翻譯,作品受知識(shí)產(chǎn)權(quán)法保護(hù)并被授權(quán)遵從 知識(shí)分享協(xié)議:署名-非商業(yè)性使用-相同方式共享 歡迎轉(zhuǎn)載,請(qǐng)?jiān)谵D(zhuǎn)載時(shí)注明作者姓名(楊一)及出處(www.tkk7.com/yangyi)
    /////////////////////////////////////////
    我的訪問者

    常用鏈接

    留言簿(5)

    隨筆分類(55)

    隨筆檔案(55)

    相冊(cè)

    Java

    其他技術(shù)

    生活

    最新隨筆

    搜索

    積分與排名

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    自強(qiáng)不息


    用心 - 珍惜時(shí)間,勇于創(chuàng)造
    主站蜘蛛池模板: 成年美女黄网站色大免费视频| 中国精品一级毛片免费播放| 免费观看激色视频网站(性色)| 西西人体44rt高清亚洲| 91免费国产视频| 久久精品国产精品亚洲精品| 国产精品午夜免费观看网站| 国产亚洲一区区二区在线| 一级**爱片免费视频| 中文字幕精品亚洲无线码一区| 国产人成网在线播放VA免费| 国产亚洲成AV人片在线观黄桃| 99久久免费国产精精品| 亚洲成av人影院| 国产成人免费在线| 久久精品国产亚洲av麻豆蜜芽| 成年性羞羞视频免费观看无限| 亚洲欧美日韩一区二区三区| 免费观看午夜在线欧差毛片| 国产成在线观看免费视频| 亚洲 欧洲 自拍 另类 校园| 国产精品四虎在线观看免费| 亚洲成人黄色在线| 国产免费无码一区二区| 亚洲黄色在线电影| 精品国产免费一区二区| 免费一级毛片在线播放放视频| 国产亚洲美女精品久久久久狼| www视频在线观看免费| 精品无码专区亚洲| 在线精品亚洲一区二区小说| 中文字幕视频免费| 真人无码作爱免费视频| 亚洲va久久久噜噜噜久久天堂| 久九九精品免费视频| 看免费毛片天天看| 亚洲小视频在线观看| 四虎永久在线精品免费影视| 免费精品一区二区三区第35| 亚洲精品又粗又大又爽A片| 在线观看午夜亚洲一区|