../../image/benilogo.gifPHPからメールを送信するには


PHP からMIME 文字列のエンコードするには。
mailの Subject に渡す 日本語文字列のエンコードは
マニュアル mb_encode_mimeheader( )

string mb_encode_mimeheader ( string str [, string charset [, string transfer-encoding [, string linefeed]]] )
  1. 最初に思いついたのはこれ。
      //
      //--- メールを送る。
      //    タイトルは base64_encode しないと化ける。
      $m_title = "=?iso-2022-jp?B?";
      $m_title .= base64_encode(iconv("EUC-JP","ISO-2022-JP",$_POST['b_title']));
      $m_title .= "?=";
      
    
    
    • "=?iso-2022-jp?B?"
    • ISO-2022-JP に変換
    • base64_encode
    • "?="
    としてやれば伝わるようです。

  2. 上記のようにしなくても
    // EUC-JP から ISO-2022-JP に変換
    $subject_jis  = mb_convert_encoding($subject_euc,"ISO-2022-JP","EUC-JP");
    $subject = mb_encode_mimeheader($subject_jis,"ISO-2022-JP");
                       //defaultでこれ   "UTF-8","B","\r\n");
    
    
    • これだけでいいようです。
    • マニュアルでは default で "ISO-2022-JP"と
      書いてあるが、筆者の現在の Server 環境では
      これを明記しないと "UTF-8" になった。


















| 一つ前に戻る |

2005/09/03 start ********* Last Update 2006/11/12 19:10 JST

(C) Y.Kondou,2005,2006 All Rights, Reserved.
その他、お気づきの点がありましたら連絡先はこちらから