Closed7

メールアドレスの大文字・小文字は区別すべきか

mythosilmythosil

小文字に正規化すべき、という認識でいる。
ただ、その認識が本当に正しいのかちゃんと調査したことがない。

mythosilmythosil

RFC 5321では、Local-partは大文字・小文字を区別することもあるとされている。

Local-part     = Dot-string / Quoted-string
               ; MAY be case-sensitive
mythosilmythosil

RFC 5321 2.4. General Syntax Principles and Transaction Modelから抜粋。

Therefore, SMTP implementations MUST take care to preserve the case
of mailbox local-parts.  In particular, for some hosts, the user
"smith" is different from the user "Smith".  However, exploiting the
case sensitivity of mailbox local-parts impedes interoperability and
is discouraged.
mythosilmythosil

現実的には大文字・小文字を区別しない実装がほとんど。
それらとの相互運用性を考えると、やはり大文字・小文字を区別しないのが望ましい。

このStackoverflowのスレッドで色々な意見が書かれていて参考になる。
https://stackoverflow.com/a/9808332/3808025

mythosilmythosil

Firebase Authenticationでユーザーを作成してみた。Local-partを大文字で入力しても小文字で登録される。

mythosilmythosil

Microsoftアカウントを作成してみた。
メアドは大文字含んだまま登録された。 UPPERxxxxxx@outlook.com みたいな感じ。
upperxxxxx@outlook.com 宛にメールを送信しても問題なく届く。

mythosilmythosil

メアドの入力を受け付けるサービスの開発をする際には、入力されたメアドは小文字に正規化してしまうのが良さそう。
.+ など他にも考慮すべきものがあり、これらの扱い方は要件次第。

このスクラップは2022/11/02にクローズされました