PHPコーディング

【mb_send_mail】関数でcc、bccが送信できない!?

2008年12月05日
改正迷惑メール防止法施行に伴い、ステップメールで登録があったとき、管理者アドレスへも登録メールを送信するようにソースを変更してみました。これでログになるはずです。

実際の送信は、bccで管理者へ送信します。


ところが・・・
送信できない。

なぜだ???

bccはヘッダへ書き込みますが、間違っているのか??
色々調べまわったのですが、合っている。


色々変えてみてもやっぱり送信できていない・・・


考えていて思い出しました。Webに置いている連絡フォームはbccが送信できていました。同じソースを利用しているので、ソースが違っているわけではないようです。


そこで、送信先のメールアドレスを変更してみました。

なんと!! ちゃんと来るではありませんか。

同じドメインが含まれているとサーバーが弾いているのかと思い、色々アドレスを変更してみました。私が持っているドメインで送れないようです。

レンタルサーバーの同じIDに契約しているドメインがダメなようです。
なんだぁ。あっさり解決です。


日本語メールを送るソースです。

//言語設定
mb_language("Japanese");
//内部エンコーディング
mb_internal_encoding("EUC") ;

$to = "aaa@bb.xxx";
$subject = "サブジェクト";
$body = "本文";
$from_name = "Aさん";

$from_name = mb_encode_mimeheader($from_name,"EUC","B");
$headers = "From: ".$from_name."<".$from.">\r\n";
$headers.= 'Reply-To:'.$Reply."\r\n";
$headers.= 'BCC:'.$bcc."\r\n";

//送信
$send_result = mb_send_mail($to, $subject, $body, $headers);


【mb_send_mail】関数は、サブジェクト、本文はエンコーディングしてくれますが、ヘッダはエンコーディングしてくれません。なので、【Form】に日本語を含める場合は事前にエンコーディングしておきます。

【to】、【bcc】、【cc】には日本語は含められません。