この投稿にはかなり遅れましたが、少し違うことを言っています...
>> "Are email addresses case sensitive?"
まあ、それは「依存する...」(TM)
一部の組織は、それを良いアイデアだと実際に考えており、電子メールサーバーは大文字と小文字を区別します。
したがって、これらのクレイジーな場所では、「はい、メールでは大文字と小文字が区別されます」。
注:仕様で何かを実行できると言っているからといって、そうすることをお勧めします。
KISSの原則は、私たちのシステムは大文字と小文字を区別しないメールを使用することを示唆しています。
一方、堅牢性の原則では、大文字と小文字を区別するメールを受け入れることを推奨しています。
解決:
- 大文字と小文字を区別してメールを保存する
- 大文字と小文字を区別してメールを送信する
- 大文字と小文字を区別せずに内部検索を実行する
これは、このメールがすでに存在する場合はuser@x.comであることを意味します
...そして、別のユーザーがやって来て、このメールを使用したい場合:USER@x.com
...大文字と小文字を区別しない検索ロジックでは、「そのメールは既に存在します」というエラーメッセージが返されます。
さて、あなたは決断を下しました: あなたの場合、その解決策は適切ですか?
そうでない場合は、user @ x.comがすでに存在していても、大文字と小文字を区別するメールのサポートを要求し、システムにUSER@x.comを許可するカスタムロジックを実装するクライアントに、便利な料金を請求できます。
その場合、メールの検索/検証ロジックは次の疑似コードのようになります。
if (user.paidEmailFee) {
// case sensitive email
query = "select * from users where email LIKE ' + user.email + '"
} else {
// case insensitive email
query = "select * from users where email ILIKE ' + user.email + '"
}
このように、ほとんどの場合、大文字と小文字を区別しませんが、顧客がこのようなナンセンスをサポートする電子メールシステムを使用している場合は、このサポートの料金を支払うことができます。
ps ILIKEはPostgreSQLのキーワードです:http ://www.postgresql.org/docs/9.2/static/functions-matching.html