簡易代碼之家

            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 閱讀(3750) 評論(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 戒子
          無效  回復  更多評論
            


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


          網站導航:
           
          主站蜘蛛池模板: 始兴县| 庄河市| 苏州市| 宝山区| 广宗县| 临沭县| 南川市| 津市市| 沙洋县| 二连浩特市| 城市| 两当县| 道孚县| 利津县| 微博| 桑植县| 东丰县| 团风县| 翼城县| 沾化县| 固原市| 长治市| 雷州市| 罗甸县| 徐汇区| 六枝特区| 南陵县| 平南县| 荣昌县| 积石山| 靖宇县| 吉林省| 丹东市| 河间市| 台安县| 永登县| 揭东县| 襄樊市| 克什克腾旗| 万全县| 临夏市|