関数の概要
mb_send_mail は、PHPで日本語などのマルチバイト文字を含むメールを正しく送信するための関数です。通常の mail() 関数では文字化けしやすい日本語メールに対応しており、エンコーディングやヘッダーの設定を簡単に行えます。主に日本語環境でのメール送信に利用されます。
パラメータの説明
to(string):メールの宛先アドレス(例:example@example.com)。複数の宛先はカンマ区切りで指定可能。subject(string):メールの件名。マルチバイト文字も正しく処理されます。message(string):メール本文。文字コードに注意し、適切にエンコードされた文字列を使用します。headers(string|null):追加のメールヘッダー(FromやCc、Bccなど)。省略可能。parameters(string|null):sendmailに渡す追加パラメータ。省略可能。
戻り値
メールの送信に成功すると true を返し、失敗すると false を返します。送信成功=メールが正常に送信処理されたことを意味しますが、必ずしも受信者に届いた保証ではありません。
使用例
基本的な使い方
mb_language("Japanese");
mb_internal_encoding("UTF-8");
$to = "user@example.com";
$subject = "こんにちは";
$message = "これはテストメールです。";
$headers = "From: sender@example.com";
if(mb_send_mail($to, $subject, $message, $headers)){
echo "メールを送信しました。";
} else {
echo "メール送信に失敗しました。";
}
日本語設定の指定と、基本的なメール送信の流れです。最低限のヘッダーも含めています。
複数の宛先に送る場合
$to = "user1@example.com, user2@example.com";
$subject = "お知らせ";
$message = "複数の宛先に送る例です。";
$headers = "From: sender@example.com";
mb_send_mail($to, $subject, $message, $headers);
宛先をカンマで区切ることで複数人に送信できます。
CCやBCC、エンコーディングを指定する場合
mb_language("Japanese");
mb_internal_encoding("UTF-8");
$to = "user@example.com";
$subject = "打ち合わせのご案内";
$message = "日時:来週月曜日 10時n場所:会議室A";
$headers = "From: sender@example.comrn";
$headers .= "Cc: manager@example.comrn";
$headers .= "Bcc: admin@example.com";
if(mb_send_mail($to, $subject, $message, $headers)){
echo "メールを送信しました。";
}
CCやBCCをヘッダーに追加し、複数の関係者に同時にメールを送る例です。
関連する関数
mail()– PHPの標準メール送信関数。日本語処理は自力で行う必要あり。mb_language()– mb_send_mail が日本語メールを送る際の言語設定に使用。mb_internal_encoding()– 内部文字エンコーディングの設定。mb_send_mailでの日本語メール処理に重要。mb_encode_mimeheader()– メールヘッダーの日本語エンコードに使う関数。
まとめ
mb_send_mail はPHPで日本語メールを送信するときに欠かせない関数です。文字コードの設定や適切なヘッダーの指定を行うことで、文字化けなく確実にメールを送ることができます。初心者でも使いやすく、実務でも広く利用されているため、メール送信処理にはぜひ活用しましょう。
