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


やりたいこと

外部のメールサーバを参照してメール送信を行なっているのだけど、宛先が複数だった場合に、エラーがあったので、対処した。
解決方法自体はなんてことないけど、同様な問題に当たってしまう人もいるかと思うので、残しておく

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

正しく動作している例:

$to = '[email protected]';
$mail->addAddress($to);

$mail->send();

上記のような場合は、正しく動作する。
今回起こった事象として、以下のような事象

// $toにカンマ区切りで、宛先が複数指定されていた
$to = '[email protected],[email protected]';
$mail->addAddress($to);

$mail->send();

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

解決方法

$to = '[email protected],[email protected]';
$to = explode(',',$to);

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

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