PHPMailerを使うときに気をつけたほうがいいこと

特定の宛先で送信エラーになってしまい、一瞬ポルナレフ状態に陥ったので共有です。
今回使用したPHPMailerのバージョンは5.2.23です。
ポルナレフ状態↓
por.jpeg

結論

宛先がRFCで認められていない形式のメールアドレスの場合、送信エラーになる
無事送信できるようにするためには、バリデーションを緩くする必要がある

RFCで認められていない形式のメールアドレスってどんなの?

docomo, au, Softbankでは、以下のような形式のメールアドレスの取得を以前許可していたらしい

@ の直前にピリオド (.) があるメール アドレス : xxxx.@xxxxxx
@ より前で、ピリオド (.) が連続しているメール アドレス : xx..xx@xxxxxx

対処法

バリデーション処理を修正

PHPMailer/class.phpmailer.php
public static $validator = 'auto';

PHPMailer/class.phpmailer.php
public static $validator = 'noregex';

PHPMailer::validateAddress内で$validatorの値によってメールアドレスの形式チェックを分岐させている
最も緩い形式チェックをするモードに指定した

RFCで認められていない形式のメールアドレスの場合、@ 以前を“”(ダブルクォート)でくくって
メール送信してくれるみたい

解決!

[紹介元] PHPタグが付けられた新着投稿 – Qiita PHPMailerを使うときに気をつけたほうがいいこと

関連記事