Posted at

PHPMailerで複数の宛先へメールを送信する

More than 1 year has passed since last update.


やりたいこと

外部のメールサーバを参照してメール送信を行なっているのだけど、宛先が複数だった場合に、エラーがあったので、対処した。

解決方法自体はなんてことないけど、同様な問題に当たってしまう人もいるかと思うので、残しておく

具体的にはどんな事象かというと以下のような感じ

正しく動作している例:

$to = 'hoge@mail.com';

$mail->addAddress($to);

$mail->send();

上記のような場合は、正しく動作する。

今回起こった事象として、以下のような事象

// $toにカンマ区切りで、宛先が複数指定されていた

$to = 'hoge@mail.com,hoge2@mail.com';
$mail->addAddress($to);

$mail->send();

上記見てわかるように、$mail->addAddressで複数の宛先を指定していたためエラーになった。


解決方法

$to = 'hoge@mail.com,hoge2@mail.com';

$to = explode(',',$to);

for ($i = 0; $i < count($to); $i++) {
$mail->addAddress($to[$i]);
}

とすればいいと思います。上記の方法であれば、$toの中がカンマで区切られてなくてもエラーとならず正しく動作します。