実態と合わせてザッとまとめる
先にまとめ
- メールアドレスのローカル部(アットマークより前)は大文字小文字を区別しないことが多い。そのため
hoge@example.com
もHoGe@example.com
も同じアドレスとみなす場合がほとんど。 - 「区別しないこと多い」という表現をしているのは区別しないという仕様ではないため。
- 一部のWebサービスではメールアドレスのローカル部は小文字で保存しているケースもある
仕様から考える
仕様としてはRFC5321を参照すると以下の通り
The local-part of a mailbox MUST BE treated as case sensitive. 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. Mailbox domains follow normal DNS rules and are hence not case sensitive. - RFC 5321: Simple Mail Transfer Protocol - 2.4
日本語訳verだと以下の通り
つまり、コマンド動詞、メールボックスのローカル部分以外の引数値、および自由形式のテキストは、大文字、小文字、または大文字と小文字の任意の組み合わせでエンコードされても、その意味には影響しません。メールボックスのローカル部分は、大文字と小文字を区別する必要があります。したがって、SMTP実装は、メールボックスのローカル部分の大文字と小文字を維持するように注意する必要があります。特に、一部のホストでは、ユーザー「smith」はユーザー「Smith」とは異なります。ただし、メールボックスのローカル部分の大文字と小文字の区別を悪用すると、相互運用性が妨げられるため、お勧めしません。メールボックスドメインは通常のDNSルールに従うため、大文字と小文字は区別されません。 - RFC 5321 - Simple Mail Transfer Protocol 日本語訳
わかりにくい部分ではありますが、「区別する必要がある」と書かれており、最後の最後で「大文字と小文字を区別して運用することはオススメされておらず、区別しないほうがよい」とされている。
実際のメール送信において
実際のメール送受信の挙動としては、RFCの挙動の「メールボックスドメインは通常のDNSルールに従うため、大文字と小文字は区別されません。」の部分に準じて動く。そのため大文字と小文字を区別しないため HoGe@example.com
も hoGE@examole.com
も同じメールアドレス扱いになり、正しく届く。
サービスによってはメールアドレスは小文字で保存されることがある
一部のWebサービスではメールのローカル部が大文字だった場合は小文字で保存するなどの処理をとっている。例えばSalesforceでは以下のように記載がある
Salesforce ではメールアドレスは小文字で保存されます。 - メールアドレスの検証