mb_send_mailでCCやBCCを指定する 表示名を指定する

PHPのmb_send_mail関数の第4引数の指定の仕方の説明です。

[参考記事] mb_send_mail、mb_encode_mimeheaderの文字化けのまとめ(半角カタカナなど)
[参考記事] PHPでHTMLメールを送る方法
[参考記事] mail関数やmb_send_mail関数でReturn-Pathを設定する方法
[参考記事] PCからデコメールを送るときの仕様
[参考記事] mailto本文での改行 ドコモのN、Pで送信に失敗します
[参考記事] mailtoの使い方
[参考記事] 携帯サイトでのmailtoの使い方

CCやBCCを指定する

例えば送り元(from)が test@example.com で、CCが foo@example.com だったとすると第4引数に渡す値は次のようになります。

$header="From: test@example.com";
$header.="\n";
$header.="Cc: foo@example.com";

同じようにBCCを指定するには、

$header="From: test@example.com";
$header.="\n";
$header.="Bcc: foo@example.com";

CCとBCCを同時に指定するには、

$header="From: test@example.com";
$header.="\n";
$header.="Cc: hoge@example.com";
$header.="\n";
$header.="Bcc: foo@example.com";

CCやBCCを複数指定する

複数のCCやBCCを指定するには、『 , 』でつなぎます。

$header="Bcc:hoge@example.com";
$header.="," ;
$header.="hogehoge@example.com";

送信者の表示名を指定する

送信者の日本語名などを追加するには mb_encode_mimeheader を使います。

$header="From: " .mb_encode_mimeheader("テスト太郎") ."<test@example.com>";

CCやBCCも同じです。

送信先の表示名を指定する

送信先の表示名を指定する場合は第4引数に次のように指定してはいけません。

$header="To: " .mb_encode_mimeheader("テスト太郎さん") ."<test@example.com>";

このようにするとToヘッダーが2つ付くため受け取った側のメーラーによっては表示が変になります。

送信先の表示名は第1引数に渡す値に指定します。

$email=mb_encode_mimeheader("テスト太郎さん") ."<test@example.com>";

まとめ

まとめると次のようになります。

<?php

mb_language("japanese");
mb_internal_encoding("SJIS");

$email=mb_encode_mimeheader("トゥーさん") ."<to@example.com>";
$subject="タイトル";
$body="本文";
$header="From: " .mb_encode_mimeheader("テスト太郎") ."<test@example.com>";
$header.="\n";
$header.="Bcc:" .mb_encode_mimeheader("ほげさん") ."<hoge@example.com>";
$header.="," .mb_encode_mimeheader("ほげほげさん") ."<hogehoge@example.com>";
$header.="\n";
$header.="Cc:" .mb_encode_mimeheader("フーさん") ."<foo@example.com>";
$header.="," .mb_encode_mimeheader("フーフーさん") ."<foofoo@example.com>";

if(!@mb_send_mail($email,$subject,$body,$header)){
  echo "エラー";
}

関連記事

スポンサーリンク

Eclipse で全角空白、タブを強調表示する方法

ホームページ製作・web系アプリ系の製作案件募集中です。

上に戻る