簡易代碼之家

            BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
            157 Posts :: 2 Stories :: 57 Comments :: 0 Trackbacks

                 
                  最近項目中用到了spring的郵件功能,程序部署在客戶服務器上(操作系統(tǒng)為繁體中文),每次發(fā)送郵件時接收者的操作系統(tǒng)如果也為繁體中文則不會出現(xiàn)亂碼,如果為簡體中文或英文,對于郵件標題或內容有中文(無論繁體與簡體)的就會出現(xiàn)中文亂碼現(xiàn)象,需要"查看"-"編碼"-"Unicode(UTF-8)"才能正常看到郵件的內容。究其原因是由于郵件的MIME沒有設定為UTF-8。最后換了一種實現(xiàn)方法解決問題。類MailSendTest中doSendMailOne()為會出現(xiàn)問題的方法,doSendMailTwo()為不會出現(xiàn)亂碼現(xiàn)象的實現(xiàn)方法。

          Spring關于mailSender的配制:

          <bean id="mailSender"
                  class
          ="org.springframework.mail.javamail.JavaMailSenderImpl">
                  
          <property name="host">
                      
          <value>mail.xxx.com</value>
                  
          </property>
              
          </bean>

          Java類MailSendTest:

          package com.jakin;

          import javax.mail.MessagingException;
          import javax.mail.internet.MimeMessage;

          import org.springframework.mail.MailSender;
          import org.springframework.mail.SimpleMailMessage;
          import org.springframework.mail.javamail.JavaMailSender;
          import org.springframework.mail.javamail.MimeMessageHelper;

          public class MailSendTest {

              
          private MailSender mailSender;

              
          public MailSender getMailSender() {
                  
          return mailSender;
              }


              
          public void setMailSender(MailSender mailSender) {
                  
          this.mailSender = mailSender;
              }


              
          /**
               * 沒有對郵件的格式編碼進行處理,可能會有亂碼現(xiàn)象
               * 
               
          */

              
          public void doSendMailOne() {
                  SimpleMailMessage message 
          = new SimpleMailMessage();
                  message.setFrom(
          "jakin@xxx.com");
                  message.setTo(
          "lilei@xxx.com");
                  message.setCc(
          "hanmeimei@xxx.com");
                  message.setSubject(
          "第一封測試郵件");
                  message.setText(
          "Dear All:\n" + "這是一封測試郵件!");
                  mailSender.send(message);
              }


              
          /**
               * 把郵件的格式編碼設定為UTF-8,不會出現(xiàn)亂碼現(xiàn)象
               * 
               
          */

              
          public void doSendMailTwo() {
                  JavaMailSender javaMailSender 
          = (JavaMailSender) mailSender;
                  MimeMessage mime 
          = javaMailSender.createMimeMessage();
                  MimeMessageHelper helper;
                  
          try {
                      helper 
          = new MimeMessageHelper(mime, true"utf-8");
                      helper.setFrom(
          "jakin@xxx.com");
                      helper.setTo(
          "lilei@xxx.com");
                      helper.setCc(
          "hanmeimei@xxx.com");
                      helper.setSubject(
          "第二封測試郵件");
                      helper.setText(
          "Dear All:\n" + "這是一封測試郵件!");
                  }
           catch (MessagingException me) {
                      me.printStackTrace();
                  }

                  javaMailSender.send(mime);
              }

          }

          posted on 2008-07-18 16:55 Jakin.zhou 閱讀(3755) 評論(4)  編輯  收藏

          Feedback

          # re: Spring Mail中文亂碼問題 2008-07-19 10:39 si
          不錯。。  回復  更多評論
            

          # re: Spring Mail中文亂碼問題[未登錄] 2009-03-12 17:14 jack
          韓文還是有問題,請問如何解決?
            回復  更多評論
            

          # re: Spring Mail中文亂碼問題[未登錄] 2010-06-01 10:45 tang
          學習了。  回復  更多評論
            

          # re: Spring Mail中文亂碼問題 2012-11-26 15:59 戒子
          無效  回復  更多評論
            


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導航:
           
          主站蜘蛛池模板: 沁水县| 闻喜县| 谷城县| 灌阳县| 玛多县| 东阿县| 沛县| 海城市| 奉化市| 四平市| 紫阳县| 华池县| 东安县| 牡丹江市| 宿州市| 屯昌县| 新源县| 河津市| 龙海市| 溆浦县| 赤水市| 长治市| 崇信县| 友谊县| 梓潼县| 阆中市| 嘉峪关市| 泰来县| 绥棱县| 交口县| 凤城市| 辉南县| 无极县| 皋兰县| 南漳县| 巍山| 延安市| 大新县| 金华市| 海城市| 娄底市|