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

Back to archive index

Kenji kenji****@club*****
2008年 1月 21日 (月) 14:32:43 JST


Kenji です。


Bug Tracker に投げました。

http://codeigniter.com/bug_tracker/bug/3279/


On Wed, 26 Dec 2007 11:53:22 +0900
Kenji <kenji****@club*****> wrote:

> 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 メーリングリストの案内
Back to archive index