複数のメールアドレスへ一括送信
今回は、次のような時に便利な方法を解説します。
- 宛先のメールアドレスが1つじゃない
- システム管理者にも同じ内容のメールを送信したい
複数の宛先を指定
mb_send_mail関数では、次のようにパラメータを指定することができます。
mb_send_mail関数の基本的なコード例
mb_send_mail( $to, $subject, $text, $header, $parameter);
この中で、宛先は$toへ指定します。
複数の宛先を指定したい場合、メールアドレスを「,(半角カンマ)」で区切ることで指定できます。
例えば、次の3件のメールアドレスへ一括送信するとします。
- yamada@gray-code.com
- admin@gray-code.com
- ishikawa@gray-code.com
これらの宛先へmb_send_mail関数で送信すると、次のようなコードになります。
※ここでは便宜上、送信元や文字コードなどの指定は省略します。
PHP コード例
<?php
// 宛先 ※同時に3件指定
$to = "yamada@gray-code.com,admin@gray-code.com,ishikawa@gray-code.com";
// 件名
$subject = "メールの送信テスト";
// 本文
$text = "こんにちは。
こちらはテストメールです。";
//メール送信
$response = mb_send_mail( $to, $subject, $text);
以上の指定で、3件のメールアドレスへ一括送信されます。
大量の宛先に送信する場合は別の方法を
メルマガ配信など大量の宛先へ一括でメールを送信するケースもありますが、昨今はスパムメール対策が厳しくなっているため上記の方法はお勧めできません。
今回の方法はお問い合わせフォームなどで受付の確認用など、単発でのメール送信の場合のみ使用してください。
また、mb_send_mail関数の一括送信が効率的でないためサーバーに負荷が掛かりやすくなります。
結果としてポート接続がタイムアウトしてしまい処理が完了できなくなり、結果としてサーバーの不具合の要因となる可能性があります。
一括でたくさんの宛先にメール送信したい場合は、AWSのSES(Simple Email Service)やSendGridのようなメール配信サービスの使用を検討するか、もしくは次のようなメール送信ライブラリの使用を検討してください。
Swift Mailer
PHPMailer