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


PHP からメールを送信するには。mb_send_mail( )
mb_send_mail を利用してメールを送信する
マニュアル mail関数 mail( ) mb_send_mail( )

boolean mb_send_mail ( string to, string subject, string message [, string additional_headers [, string additional_parameter]])

書式は mail と同じである。 日本語の MIME EncodeBase64_encode をやってくれるところが違っている。
Mime-Version: 1.0 Content-Transfer-Encoding: 7bit も付加してくれる。

  1. mail/mail_3_1.php
    <?php
    echo "mail()  test mail_3_1.php として mb_encode_mimeheader\n";
    echo " mb_send_mail( )を使って送信する実験 \n";
    $to_addr = "xxxx@xxxx.xxx";
    $from_addr = "test3_1@xxxx.xxx";
    $reply_addr = "aaaaa@xxxx.xxx";
    $subject_euc = "日本語メールの実験";
    $comment_euc = "こんにちは、日本語メールの実験です。\r\n";
    $comment_euc .= "mail_3_1.php から送信しています。 \r\n";
    $comment_euc .= "mime_encode_headerとmb_convert_encoding の実験です。\r\n";
    $comment_euc .= "mb_send_mail()を利用。\r\n";
    // 
    //  mb_send_mail()の場合は mb_languageを ja,japanese に設定する必要が
    //  あります。
    //
    echo "mb_language()の初期値は = ",mb_language(),"です。\n";
    if (mb_language("ja")){
      echo "mb_language を",mb_language(),"に設定しました。\n";
    }else{
      echo "mb_language()の設定に失敗しています。 \n";
    }
    
    // EUC-JP から ISO-2022-JP に変換
    $subject_jis  = mb_convert_encoding($subject_euc,"ISO-2022-JP","EUC-JP");
    $comment = mb_convert_encoding($comment_euc,"ISO-2022-JP","EUC-JP");
    
    //
    //---- MIME ヘッダー 付与
    //
    $add_header ="MIME-Version: 1.0\r\n";
    $add_header .= "Content-Transfer-Encoding: 7bit\r\n";
    $add_header .= "Content-Type : text/plain;\r\n";
    $add_header .= "\tcharset=\"iso-2022-jp\";\r\n";
    
    //---- 追加ヘッダー
    $add_header .= "From:$from_addr\r\n";
    $add_header .= "Reply-To:$reply_addr\r\n";
    $add_header .= "X-Mailer : PHP/" . phpversion();
    
    //
    //---- メールを送信する。
    //
    mb_send_mail($to_addr,$subject_jis,$comment,$add_header);
    
    ?>
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        今の server 環境では
     ← mb_language() default で neutral
        なので mb_language("ja")として
      日本語環境にしてやる。
    
    
    
    
    
     ← ISO-2022-JP に変換しておけばいい。
      base64_encode は mb_send_mail で
      やってくれる。
    
    
    
     ← Mime-Version: 1.0 
        Content-Transfer-Encoding: 7bit
       ここに書かなくても付加してくれる

    結果のメール
    メッセージのソース
    Date: Sun, 4 Sep 2005 17:07:13 +0900 (JST)
    Message-Id: <200509040807.j8487D3X005843@beniya.com>
    To: xxxx@xxxx.xxx
    Subject: =?ISO-2022-JP?B?GyRCRnxLXDhsJWEhPCVrJE48Qjgz?=
     =?ISO-2022-JP?B?GyhC?=
    MIME-Version: 1.0
    Content-Transfer-Encoding: 7bit
    From: test3_1@xxxx.xxx
    Reply-To: aaaaa@xxxx.xxx
    X-Mailer: PHP/4.3.10
    Mime-Version: 1.0
    Content-Transfer-Encoding: 7bit
    X-Loop-Detect: 1
    X-DistLoop-Detect: 1
    Content-Type: text/plain;
            charset="iso-2022-jp";
    X-UIDL: `KO"!7XB!!T8Z"!3LT!!
    
    $B$3$s$K$A$O!"F|K\8l%a!<%k$N<B83$G$9!#(B
    mail_3_1.php $B$+$iAw?.$7$F$$$^$9!#(B 
    mime_encode_header$B$H(Bmb_convert_encoding $B$N<B83$G$9!#(B
    mb_send_mail()$B$rMxMQ!#(B
    
    
    
    image/mb_send_mail_oe.gif

    こんな感じでちゃんと受信されている。
    注意
    Mime-Version: 1.0
    Content-Transfer-Encoding: 7bit
    これは Mime ヘッダーに書いているので二重になっている。


















| 一つ前に戻る |

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

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