[Codeigniter-users] Emailクラスの _encoding(7bit/8bit)

Back to archive index

Kenji kenji****@club*****
2007年 12月 26日 (水) 11:53:22 JST


Kenji です。


あまり反応がよくありません。が、Armchair Samuraiさんの解釈は
私の解釈とは矛盾しません。

$_base_charsets が、7bit の文字コードのリストと解釈し、
デフォルトが 8bit になっているのは、バグと考え、Bug Tracker
に投げようと思います。


ちなみに、日本語言語パックではそれに沿って、以下の修正を
入れようと思っています。

--- ./system/libraries/Email.php.orig   2007-07-12 04:32:38.000000000 +0900
+++ ./system/libraries/Email.php        2007-12-17 10:41:25.000000000 +0900
@@ -11,6 +11,9 @@
  * @link               http://www.codeigniter.com
  * @since              Version 1.0
  * @filesource
+ *
+ * Modified by Kenji Suzuki, 2007/12/17
+ * - supporting Japanese(iso-2022-jp)
  */

 // ------------------------------------------------------------------------
@@ -59,7 +62,7 @@
        var     $_atc_boundary  = "";
        var     $_header_str    = "";
        var     $_smtp_connect  = "";
-       var     $_encoding              = "8bit";
+       var     $_encoding              = "7bit";
        var $_safe_mode         = FALSE;
        var $_IP                        = FALSE;
        var     $_smtp_auth             = FALSE;
@@ -73,7 +76,7 @@
        var     $_attach_type   = array();
        var     $_attach_disp   = array();
        var     $_protocols             = array('mail', 'sendmail', 'smtp');
-       var     $_base_charsets = array('iso-8859-1', 'us-ascii');
+       var     $_base_charsets = array('us-ascii', 'iso-2022-jp');
        var     $_bit_depths    = array('7bit', '8bit');
        var     $_priorities    = array('1 (Highest)', '2 (High)', '3 (Normal)', '4 (Low)', '5 (Lowest)');

@@ -326,8 +329,15 @@
         */
        function message($body)
        {
+               if (strtolower($this->charset) == 'iso-2022-jp')
+               {
+                       $this->_body = rtrim(str_replace("\r", "", $body));
+               }
+               else
+               {
                $this->_body = stripslashes(rtrim(str_replace("\r", "", $body)));
        }
+       }

        // --------------------------------------------------------------------


On Mon, 17 Dec 2007 21:20:07 +0900
"Kenichi Ando" <neo.k****@gmail*****> wrote:

> bossatamaです。
> 
> 07/12/17 に Kenji<kenji****@club*****> さんは書きました:
> >
> > Emailクラスの _encoding (Content-Transfer-Encoding: ヘッダ)の決定
> > ロジックの意味がよくわかりませんでしたので、本家フォーラムに投げて
> > みました。
> >
> > http://codeigniter.com/forums/viewthread/67179/
> >
> >
> > デフォルトは 8bit になっていて、
> >
> >         var     $_base_charsets = array('iso-8859-1', 'us-ascii');
> >
> > に当てはまらないものは、8bit にするというロジックになってます。
> >
> > 結局すべて 8bit になりますよね。
> >
> >
> フォーラムを確認しました。まだレスが付いていませんでしたが、
> 日本語メールだと通常は7bitでしょうね。
> 8bitでも送れるようなんで、どうしたもんかなぁって思って
> いましたが、どんなレスが付くのか楽しみです。
> 
> //bossatama
> 
> _______________________________________________
> Codeigniter-users mailing list
> Codei****@lists*****
> http://lists.sourceforge.jp/mailman/listinfo/codeigniter-users




Codeigniter-users メーリングリストの案内
Back to archive index