狂奔 lion

          自強不息

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

          Apache commons-email是對javamailAPI的一層封裝,經封裝后的發送郵件的代碼變得極為簡單,但這里有一個中文支持的小問題。
          commons-email主要的封裝類是Email類,這是一個抽象類,該框架給出了SimpleEmail的默認實現,但該實現并不支持中文,即使調用Email的setCharset也不起作用。
          事實上,SimpleEmail調用了Email超類中的setContent方法來設置郵件內容(通過setMsg方法),而在設置內容時,又采用了默認的英文字符集,我們只要在代碼中直接調用email類的setContent方法就可以支持中文了,但要注意setContent具備兩個參數,第一個是內容對象,第二個則是內容類型,我們把第二個參數設置為:
          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);
                          }
                      }
                  }
              }
              即有一個文本解析的過程。


           @2008 楊一. 版權所有. 保留所有權利

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

          評論

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

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

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

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

          其中有發簡單郵件,以及后面我加評論補充了發HTML郵件及帶附件的發送  回復  更多評論   

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

          導航

          公告

          本人在blogjava上發表的文章及隨筆除特別聲明外均為原創或翻譯,作品受知識產權法保護并被授權遵從 知識分享協議:署名-非商業性使用-相同方式共享 歡迎轉載,請在轉載時注明作者姓名(楊一)及出處(www.aygfsteel.com/yangyi)
          /////////////////////////////////////////
          我的訪問者

          常用鏈接

          留言簿(5)

          隨筆分類(55)

          隨筆檔案(55)

          相冊

          Java

          其他技術

          生活

          最新隨筆

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          自強不息


          用心 - 珍惜時間,勇于創造
          主站蜘蛛池模板: 自治县| 洱源县| 方城县| 霍城县| 土默特左旗| 岫岩| 行唐县| 河曲县| 嘉定区| 从化市| 利川市| 开江县| 监利县| 方山县| 台北县| 富宁县| 靖江市| 阿拉善左旗| 裕民县| 沾化县| 宁国市| 东丽区| 宜都市| 白玉县| 九台市| 兰考县| 堆龙德庆县| 富顺县| 吴堡县| 沙田区| 漳州市| 襄城县| 巨野县| 沈丘县| 瑞昌市| 铁力市| 漳州市| 平顺县| 平乡县| 昌吉市| 仁寿县|