<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://m.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í)注明作者姓名(楊一)及出處(m.tkk7.com/yangyi)
    /////////////////////////////////////////
    我的訪問者

    常用鏈接

    留言簿(5)

    隨筆分類(55)

    隨筆檔案(55)

    相冊(cè)

    Java

    其他技術(shù)

    生活

    最新隨筆

    搜索

    積分與排名

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    自強(qiáng)不息


    用心 - 珍惜時(shí)間,勇于創(chuàng)造
    主站蜘蛛池模板: 校园亚洲春色另类小说合集| 久久精品国产精品亚洲色婷婷| 亚洲国产午夜精品理论片| 久久免费区一区二区三波多野| 亚洲色婷婷综合久久| 日韩av无码免费播放| 亚洲αv久久久噜噜噜噜噜| 成全高清在线观看免费| 亚洲精品成人av在线| 2021国内精品久久久久精免费| 亚洲视频在线不卡| 免费可以在线看A∨网站| 亚洲人成人无码.www石榴| 国产精品免费电影| 中美日韩在线网免费毛片视频| 亚洲综合无码精品一区二区三区| 中文字幕在线成人免费看| 亚洲AV无码一区二区二三区入口| 99精品视频在线视频免费观看| 亚洲人成免费电影| 国产又大又长又粗又硬的免费视频 | 无码国产精品一区二区免费vr| 91亚洲精品第一综合不卡播放| 成人人免费夜夜视频观看| 免费一级毛片在线播放放视频 | 成人免费视频网站www| 亚洲日本一线产区和二线| 免费乱码中文字幕网站| 国产在线观看免费视频软件| 亚洲AV一二三区成人影片| 亚洲国产香蕉人人爽成AV片久久| 久草免费福利视频| 亚洲一区二区三区成人网站| 亚洲日本中文字幕一区二区三区| 无码国产精品一区二区免费16| 亚洲最大的成人网| 国产AV无码专区亚洲AV毛网站| 毛片免费观看视频| a毛片免费全部在线播放**| 日本亚洲精品色婷婷在线影院| 国产精品亚洲精品日韩已方|