簡易代碼之家

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            157 Posts :: 2 Stories :: 57 Comments :: 0 Trackbacks

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

          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;
              }


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

              
          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,不會出現亂碼現象
               * 
               
          */

              
          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 戒子
          無效  回復  更多評論
            


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


          網站導航:
           
          主站蜘蛛池模板: 淮安市| 全南县| 大荔县| 尼勒克县| 饶河县| 柘城县| 七台河市| 湾仔区| 邵东县| 石台县| 舟曲县| 偃师市| 宝坻区| 天等县| 扶余县| 乡城县| 双城市| 石阡县| 会东县| 屯昌县| 政和县| 蓬莱市| 南雄市| 巴南区| 韩城市| 津南区| 山阳县| 深泽县| 大竹县| 广元市| 抚州市| 周口市| 布尔津县| 凯里市| 营口市| 忻州市| 托克逊县| 曲靖市| 阿图什市| 南安市| 融水|