WEBシステム開発でメールアドレスの⼊⼒を求めるケースは多々あるが、テストで異常値の確認を⾏っている際、ふとメールアドレス欄に⽇本語を⼊⼒すると通ってしまう事象が発⽣。
調べてみると約10年前から⽇本語(厳密にはUTF-8)が使えるようになっていた模様。
RFCについて
Request For Comments の略で、インターネット技術の標準化を⾏うIETFが発⾏しており、インターネット関連の技術に関する仕様がまとめられている。
メールアドレスの⽇本語(UTF-8)対応
■ローカル部
■ドメイン部
RFC 6531(2012年)、RFC 6532(2012年)
Laravelでのメールアドレスバリデーション
Laravelでは標準でメールアドレス⽤のバリデーションが⽤意されています。
rfc: RFCValidation
strict: NoRFCWarningsValidation
dns: DNSCheckValidation
spoof: SpoofCheckValidation
filter: FilterEmailValidation
strict: NoRFCWarningsValidation
dns: DNSCheckValidation
spoof: SpoofCheckValidation
filter: FilterEmailValidation
以下のように組み合わせることで必要なバリデーションをかけることが可能。
'email' => 'email:rfc,dns'