メール送信
mb_send_mail
phpを利用して日本語を含むメールを送信する場合はmb_send_mailを使用します。PHP4,5で使用可能。ただしサーバー側での設定が必要となる場合もある。
mb_send_mail(送信先メールアドレス,メールの件名,メールの本文,送信者(追加のヘッダ情報),戻りアドレス(追加のパラメータ))
追加のヘッダ情報と本文は mb_language() の設定に基づき変換、エンコードされるのでphpの設定(php.ini)を変更できない場合に備えてmb_language("ja") とmb_internal_encoding("SJIS")などとしておくことが望ましいです。
また送信者欄にお名前などの日本語を表示するためにmb_encode_mimeheaderを使用します。
<?
mb_language("ja"); //php.iniを変更しなくてもいいように
mb_internal_encoding("sjis"); //php.iniを変更しなくてもいいように
//第1引数--メール送信先アドレス
$y_to = "abc@yahoo.co.jp";
//第2引数--メールの件名
$y_subject = "フォームからのお問い合わせ";
//第3引数--メールの本文
$y_honbun = "こんにちは。\n";
//第4引数--送信者情報
$y_from = "xyz@yahoo.co.jp"; //送信者のアドレス
$y_name = "お客様指名"; //送信者の名前
$y_cc="\nCc:";
$y_bcc="\nBcc:aaa@docomo.ne.jp,bbb@gmail.com";
$y_mailfrom="From:".mb_encode_mimeheader("$y_name")."<"."$y_from".">".$y_cc.$y_bcc;
//第5引数--メール未達の場合の返送先
$return="ccc@hotamai.com";
$y_return_path = "-f $return";
if(mb_send_mail($y_to,$y_subject,$y_honbun,$y_mailfrom,$y_return_path)){
/*-----送信成功------*/
print "success";
}else{
/*-----送信失敗------*/
print "fail";
}
?>
mb_internal_encoding("sjis");はphpを記述した文字コードになります。UFT-8で書いたのであれば、mb_internal_encoding("UTF-8");とします。
- $y_to = "abc@yahoo.co.jp";はphpのスクリプトを利用して送信されるメールの宛先になります。
- $y_from = "xyz@yahoo.co.jp";からメールが送られてきたように見えます。送信者に返信した時のアドレスです。
- $y_cc="\nCc:";ccでメールを送信する場合Cc:の後にメールアドレスを記述します。複数の場合は,で区切って列記します。後ほど第4引数としてまとめる際に\nが必要になるので先頭に付加してあります。
- $y_bcc="\nBcc:aaa@docomo.ne.jp,bbb@gmail.com";bccでメールを送信する場合。後はccの場合と同じ
- $return="ccc@hotamai.com";はメールが未達の場合に戻ってくる先のアドレスになります。サーバーの設定によりうまくいかないこともあるようです。
- 第5引数は省略しても影響のない場合もありますが設定がない場合迷惑メールに分類されることもあるようです。
abc@yahoo.co.jp宛に「お客様指名」という名前でxyz@yahoo.co.jpから「フォームからのお問い合わせ」という件名の「こんにちは。」という本文のメールが送信されます。CCはありませんがBCCでaaa@docomo.ne.jp,bbb@gmail.com宛に同内容のメールが送信されます。もしメールが未達だったらccc@hotamai.comにメールが戻ります。