WEB開発備忘録

RFCに非準拠したメールアドレスへのメール送信(PHP/PEAR-Mail)

ドコモなど携帯電話会社が以前発行したメールアドレスには、RFC規約に違反したメールが結構存在します。

ローカル部に使用出来る文字(Wiki)

「.(ドット)」が連続していたり、ローカル部の末尾が「.」で終わってたり。。。

こういうのはRFC違反です。
abc..efg@example.com
abc.@example.com

PEARライブラリではMailクラスのValidationにかかってメール送信出来ません。
ララベルなんかでも送れなさそう。

RFC違反のメールはローカル部を”(ダブルクォート)で囲うことによって解決させました。

// RFC違反対策
preg_match('/\.@|\.{2,}/',$to_email,$tomail_matches);
if($tomail_matches){
  $tmp_tomail_arr = explode("@",$to_email);
  $to_email= sprintf("\"%s\"",$tmp_tomail_arr[0])."@".$tmp_tomail_arr[1];
}