メールの返信にて 501 could not parse recipient (Net::SMTPSyntaxError) が発生する。
メールの解析に不備があったため修正した。 From, To ヘッダーの解析を行う parse_mail_address を以下のように修正した。
修正前 | / *"?(.+?)"? *<(.+)> *$/ |
修正後 | / *"?(.*?)"? *<(.+)> *$/ |
メールヘッダーは名前とメールアドレスで構成される場合があるが、名前がなく以下のようにメールアドレスの場合だけの場合がある。
その際に修正前の正規表現はマッチせず、マッチしない場合は文字列全体をメールアドレスと見なしていたことから余計な <> が解析結果のメールアドレスに含まれてしまっていた。
※ 自分の docomo FOMA のメールアドレスでは問題なかったため、SP モードを疑ったが特に関係なかった。
docomo のアンドロイド端末から届いた SP モードのメールに対してメールの返信ができない。