最終更新日:
公開日:
レシピ
Swift Mailer
Swift Mailerで複数の宛先にメールを一括送信する
Swift Mailerライブラリで1つのメールを複数の宛先へ一括送信する方法を解説します。Cc、Bccの設定方法もあわせてご紹介。
この記事のポイント
- メールを複数のメールアドレスへ一括送信する
- Cc、Bccを設定する
- 宛先にメールアドレスとセットで特定の名前も指定する
目次
Swift Mailerで複数の宛先へ一括送信
メールの宛先は必ずしも1つのメールアドレスとは限りません。
「部署」など特定のグループを対象に、複数の宛先へ同じ内容のメールを送信したいケースがあります。
ビジネス用途では情報共有としてCcやBccがよく使われます。
今回はSwift Mailerライブラリで上記のようなケースに対応する方法を解説します。
メール送信の基本的な部分については「Swift Mailerのインストール&メールを送信する」で解説した内容を使用します。
Swift Mailerライブラリの公式サイトはこちら。
Swift Mailer公式サイト(英語)
Note
今回の方法を使うと複数の宛先へメールを一括送信できるため非常に便利ですが、1度に大量のメールを送信するとスパムメールを送信していると判断されてしまう恐れがあります。そのため、1度に指定する宛先の数は10件未満を目安とすることをオススメします。
複数の宛先を設定する
まずは単純に複数の宛先を設定してみましょう。
setToメソッドに渡す配列に、送信したいメールアドレスを全てセットして設定します。
swiftmailer.php
<?php
require_once 'vendor/autoload.php';
// 送信設定
$transport = new Swift_SmtpTransport('localhost', 25);
$transport->setUsername('username');
$transport->setPassword('password');
$mailer = new Swift_Mailer($transport);
// メール作成
$message = new Swift_Message();
$message->setSubject('HTMLメールのテスト');
$message->setFrom(['noreply@gray-code.com' => 'GRAYCODE']);
// 複数の宛先を設定
$message->setTo([
'taroyamada@sample.com',
'ken@sample.com',
'yuko@sample.com'
]);
// メール本文を作成
$message->setBody('複数の宛先を指定したメールのテストです。');
// メール送信
$result = $mailer->send($message);
上記のコードを実行すると、次の3件のメールアドレスへ同じメールが送信されます。
- taroyamada@sample.com
- ken@sample.com
- yuko@sample.com
後から宛先を追加する
同じタイミングで全ての宛先をセットする以外に、addToメソッドを使って後から追加することも可能です。
ただし、こちらのメソッドは1件ずつのみ追加していく形となります。
swiftmailer.php
--- 途中省略 ---
// 複数の宛先を設定
$message->setTo([
'taroyamada@sample.com'
]);
// 後から宛先を追加
$message->addTo('ken@sample.com');
$message->addTo('yuko@sample.com');
--- 省略 ---
こちらもsetToメソッドで指定した時と同様に、指定したメールアドレスへ同じメールが一括送信されます。
Cc、Bccを設定する
続いて、CcとBccの設定です。
CcはsetCcメソッド、BccはsetBccメソッドを使います。
メールアドレスはsetToメソッドと同様に配列形式で指定します。
swiftmailer.php
--- 途中省略 ---
// 宛先を設定
$message->setTo([
'taroyamada@sample.com'
]);
// Cc設定
$message->setCc([
'cc1@sample.com',
'cc2@sample.com'
]);
// Bcc設定
$message->setBcc([
'bcc@sample.com'
]);
--- 省略 ---
setToメソッドに後から宛先を追加するaddToメソッドが用意されているように、CcやBccにもそれぞれ後から宛先を追加するメソッドが用意されています。
swiftmailer.php
--- 途中省略 ---
// 宛先を設定
$message->setTo([
'taroyamada@sample.com'
]);
// Cc設定
$message->setCc([
'cc1@sample.com',
'cc2@sample.com'
]);
// 後からCcを追加
$message->addCc('yumiko@sample.com');
// Bcc設定
$message->setBcc([
'bcc@sample.com'
]);
// 後からBccを追加
$message->addBcc('ayumi@sample.com');
--- 省略 ---
setCcメソッドを使っていない場合でも、addCcメソッドで1件ずつ宛先を指定することが可能です。
通常の宛先やBccについても同様です。
Note
Cc(Carbon Copy)とBcc(Blind Carbon Copy)の違いは、Ccはメールを受信した人全員が参照できるのに対し、Bccは見ることができません。
宛先やCcに指定した人と同じメールを送りたいけど、何らかの都合で受信した人からは見えないようにしたい場合はBccを使います。
宛先にメールアドレスとセットで特定の名前も指定する
送信元と同様に、宛先にもメールアドレスとあわせて氏名やグループ名などを指定することができます。
swiftmailer.php
--- 途中省略 ---
// 複数の宛先を設定
$message->setTo([
'koheiishido@gmail.com' => 'GRAYCODE運営局'
]);
--- 省略 ---
メーラーによって表示に違いがありますが、例えばGメールでは次のように「To」の欄へ名前が表示されます。
同じ方法でCcやBccにも名前を指定できます。