0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

複数の宛先へのメール送信について(PHP)

Posted at

はじめに

つい最近、はじめてお問い合わせフォームを作成したのですがそこでこれどうやるんだろうと悩んだのが複数の宛先にメールを送る方法です。

結構無理やりな形で作成してしまったのですが…記事にまとめておこうかと思います。

実装内容

お問い合わせフォームから送信ボタンを押す
 ・メールを送信したことを送信者に伝えるメールを送る
 ・メールをHP作成者の元に送る

この二通りのメールを送ることを想定して作成しました。

mb_send_mail関数を複数回使う

まずはmb_send_mail関数を用いて以下のようにして送信しました。

  <?php
    // 送信ボタンが押されたら
    if (isset($_POST["submit"])) {
        // 送信ボタンが押された時に動作する処理をここに記述する
            
        // 日本語をメールで送る場合のおまじない
        mb_language("ja");
        mb_internal_encoding("UTF-8");

            // 件名を変数subjectに格納
            $subject = "[自動送信]お問い合わせの確認";

            // メール本文を変数bodyに格納
            $body = <<< EOM
            {$name} 

            お問い合わせありがとうございます

           ===================================================
           お名前  
           {$name}
           ふりがな  
           {$furigana}

           メール  
           {$email}
           電話番号  
           {$tel}


           お問い合わせ内容  
           {$contentbox}
           ===================================================

           内容を確認のうえ回答させて頂きます
           しばらくお待ちください
           EOM;
        
           $subbody = <<< EOM
           {$name} 

           お問い合わせいただきました

           ===================================================
           お名前  
           {$name}
           ふりがな  
           {$furigana}

           メール  
           {$email}
           電話番号  
           {$tel}


           お問い合わせ内容  
           {$contentbox}
           ===================================================
           EOM;
        
             // 送信元のメールアドレスを変数fromEmailに格納
             $fromEmail = "HP作成側のメールアドレスを記述";

            // 送信元の名前を変数fromNameに格納
            $fromName = "HP作成側の名前";

        // ヘッダ情報を変数headerに格納する
        //
        $header = "From: " .mb_encode_mimeheader($fromName) ."<{$fromEmail}>";  
        //    
        $subheader = "From: " .mb_encode_mimeheader($name) ."<{$email}>";


        // 送信者へメール送信を行う
        mb_send_mail($email, $subject, $body, $header);
        // 受信者へメール送信を行う
        mb_send_mail($fromEmail, $subject, $subbody, $subheader);  
        ?>

このような形で送信元と受信元それぞれにmb_send_mail関数でメール送信することで、同時に異なった内容のメールを送信しました。

BCCを指定する場合

同じメール内容を受信者と送信者のそれぞれに送る場合であれば、以下のようにBCCを指定することで同時に複数の宛先へ送ることが可能になります。

  <?php
    // 送信ボタンが押されたら
    if (isset($_POST["submit"])) {
        // 送信ボタンが押された時に動作する処理をここに記述する
            
        // 日本語をメールで送る場合のおまじない
        mb_language("ja");
        mb_internal_encoding("UTF-8");

            // 件名を変数subjectに格納
            $subject = "[自動送信]お問い合わせの確認";

            // メール本文を変数bodyに格納
            $body = <<< EOM
            {$name} 

           お問い合わせありがとうございます

           ===================================================
           お名前  
           {$name}
           ふりがな  
           {$furigana}

           メール  
           {$email}
           電話番号  
           {$tel}


           お問い合わせ内容  
           {$contentbox}
           ===================================================

           内容を確認のうえ回答させて頂きます
           しばらくお待ちください
           EOM;
        
             // 送信元のメールアドレスを変数fromEmailに格納
             $fromEmail = "HP作成側のメールアドレスを記述";

            // 送信元の名前を変数fromNameに格納
            $fromName = "送信元の名前(HP作成側)";

        // ヘッダ情報を変数headerに格納する
        $headers = "From: " .mb_encode_mimeheader($fromName) ."<{$fromEmail}>";
        $headers = "From: 受信者のメールアドレス";
        $headers .= "\r\n";
        $headers .= "Content-type: text/html; charset=UTF-8";  


        //メール送信を行う
        mb_send_mail($email, $subject, $body, $headers);
?>

色々やり方はあると思うのですが、今回私はこのような形で複数の宛先にメール送信を行いました。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?