メール送信

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");とします。

abc@yahoo.co.jp宛に「お客様指名」という名前でxyz@yahoo.co.jpから「フォームからのお問い合わせ」という件名の「こんにちは。」という本文のメールが送信されます。CCはありませんがBCCでaaa@docomo.ne.jp,bbb@gmail.com宛に同内容のメールが送信されます。もしメールが未達だったらccc@hotamai.comにメールが戻ります。