LoginSignup
7
5

More than 5 years have passed since last update.

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

Posted at

特定の宛先で送信エラーになってしまい、一瞬ポルナレフ状態に陥ったので共有です。
今回使用した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で認められていない形式のメールアドレスの場合、@ 以前を“”(ダブルクォート)でくくって
メール送信してくれるみたい

解決!

7
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
5