PHP

複数の宛先を指定する

  1. 最終更新日:
  2. 公開日:

mb_send_mail関数を使って、同時に複数のメールアドレスへ一括配信する方法を解説します。

この記事のポイント

  • 複数の宛先にメールを一斉送信する
  • 運営元にも同じ内容のメールを送信する
  • mb_send_mail関数の使い方が分かる

複数のメールアドレスへ一括送信

今回は、次のような時に便利な方法を解説します。

  • 宛先のメールアドレスが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

記事一覧