メールアドレスの大文字と小文字の区別について、ドメイン、Gmail、Outlook、データベースでのルールを示したカバー画像

メールアドレスの大文字と小文字は区別される?

メールアドレスの大文字と小文字は、ほとんどの場合区別されません。John.Smith@gmail.comと入力しても、john.smith@gmail.comと入力しても、メールは同じ受信トレイに届きます。@より後ろの部分は、大文字と小文字をまったく区別しません。注意が必要なのは@より前の部分です。メールの規格上は、サーバーがSmithとsmithを別の人として扱うことが認められています。登録フォームやメールリストを運用している場合は、知っておくべき点です。

@より後ろの部分は大文字と小文字を区別しない

@の後ろにあるドメイン名は、大文字と小文字を区別しません。RFC 5321では、メールボックスのドメインは通常のDNSのルールに従うと定められています。そしてDNSは大文字と小文字を区別しません。つまり、GMAIL.COM、Gmail.com、gmail.comは、まったく同じメールサーバーを指します。ドメインを大文字で入力しても小文字で入力しても、メールの届く先は変わりません。

@より前の部分は大文字と小文字を区別する?

ローカルパート(@の左側にあるユーザー名の部分)は、扱いが異なります。RFC 5321の2.4節には「メールボックスのローカルパートは、大文字と小文字を区別するものとして扱わなければならない(MUST)」と書かれています。メールを中継するサーバーは、大文字と小文字を書かれたとおりに保つ必要があります。Smithとsmithが別の人のものかどうかを決めるのは、メールボックスを持つ受信側のサーバーです。

同じ節には「メールボックスのローカルパートの大文字と小文字の区別を利用することは、相互運用性を妨げるため推奨されない」という注意もあります。同じ会社にJSmith@とjsmith@という2人の社員がいたら、メールが頻繁に取り違えられることになります。大手のメールサービスは、大文字と小文字を一切区別しないことで、この問題を避けています。

GmailとOutlookの場合

個人向けメールの大部分を扱うメールサービスは、大文字と小文字を一切区別しないことにしています。Gmailのヘルプコミュニティのプロダクトエキスパートは、Gmailはアカウント作成時もメール受信時も大文字と小文字を区別しないと説明しています。JaneDoe@gmail.com宛てでもjanedoe@gmail.com宛てでも、Googleは同じメールボックスに配信します。また、Googleは@googlemail.comと@gmail.comを同じアドレスとして扱います。

Gmailは、個人向けアドレスのドット(.)も無視します。そのため、jane.doe@gmail.comとjanedoe@gmail.comは同じ受信トレイに届きます。ただし、これがどこでも同じだと考えないでください。Googleのドキュメントによると、職場や学校のドメインで管理されているGoogle Workspaceのアカウントでは、ドットが区別されます。ドットと大文字は別のルールです。Gmailがドットを無視するからといって、他のメールサービスも同じだとは限りません。

Microsoftの回答も同様です。Microsoftのサポートフォーラムで、ある回答者は三つの点を説明しています。@より後ろの部分は大文字と小文字を区別しないこと、ユーザー名の大文字と小文字の扱いはメールサービスによって異なること、OutlookやGmailなどの大手は区別しないことです。同じ回答には、大文字と小文字を区別する独自のサーバーを運用している企業も一部あると書かれています。

大文字が問題になる場面

問題が起きやすいのはログインです。たとえば、スマートフォンのキーボードが先頭を自動で大文字にしたため、Sarah@example.comで登録したとします。後でsarah@example.comと入力してログインすると、単純な作りのシステムは「アカウントが見つかりません」と表示します。ユーザーはアドレスを変えていません。ログインフォームが、大文字と小文字を厳密に区別して文字列を比較しただけです。

メールリストやCRMでも、同じ種類の問題が起きます。Bob@company.comで登録した人が、後でbob@company.comで資料をダウンロードすると、多くのツールは別々のリードとして数えます。その結果、数値が実際より大きくなり、同じ人に同じキャンペーンが重複して届きます。マーケティング用のリストで検証や送信(英語)をする前に、大文字と小文字を区別せずに重複を削除してください。

さらに、まれに大文字と小文字を厳密に区別する企業のサーバーもあります。先ほどのMicrosoftの回答が触れていた例外です。名刺にM.MacDonald@specialtycorp.comと書かれている場合は、その表記のままメールを送ってください。一般的なシステムでは問題にならず、区別するシステムでも配信の問題を避けられます。

メールアドレスを保存する場合

Webアプリケーションを開発している場合や、連絡先データベースを管理している場合は、元の表記を保つ方法をおすすめします。アドレスはユーザーが入力したとおりに保存し、比較、検索、重複チェックはすべて小文字で行います。

元の入力を保存しておくと、プロフィールやメールヘッダーでユーザーが選んだ表記をそのまま表示できます。小文字への正規化は、アカウントの重複を防ぎます。IStillUse@AOL.COMで登録した人がいた場合、表示名を小文字に変えないでください。ただし、iSTilLUSE@aol.comはその重複として扱ってください。

PostgreSQLで重複を防ぐには、通常のユニーク制約ではなく、小文字に変換した式にインデックスを作成します。

CREATE UNIQUE INDEX users_email_lower ON users (lower(email));

PostgreSQLには、大文字と小文字を区別せずに文字列を比較するcitext拡張機能もあります。MySQLでは、デフォルトの照合順序(utf8mb4_0900_ai_ci)がもともと大文字と小文字を区別しません。そのため、通常のユニークキーだけで大文字と小文字の違いによる重複を防げます。

バックエンドの言語、特にJavaでは、小文字への変換に落とし穴があります。Javaでemail.toLowerCase()を呼び出すと、サーバーのデフォルトロケールが使われます。トルコ語のロケールでは、ラテン文字の大文字Iがiではなくı(ドットのない小文字のi)に変換されます。その結果、INFO@example.comのようなアドレスが壊れます。このバグを防ぐには、Locale.ROOTを指定してください。

// Locale.ROOT avoids language-specific letter mapping like Turkish dotless i
String cleanEmail = email.toLowerCase(Locale.ROOT);

JavaScriptのtoLowerCase()は、ホストのロケール設定ではなくUnicodeの標準のマッピングを使うため、この問題は起きません。ロケールに依存するのはtoLocaleLowerCase()だけです。

形式の誤りや不正な入力がデータベースに入る前に見つけるには、登録時にメールアドレス検証API(英語)でアドレスを確認してください。ユーザーがまだページにいる間に、入力ミスや存在しないドメインを見つけられます。

よくある質問

Gmailは大文字と小文字を区別しますか?いいえ。Gmailは、アカウント作成時もメール配信時も、大文字と小文字を区別しません。アドレスがjohn.doe@gmail.comの場合、JOHN.DOE@gmail.com宛てやJohn.Doe@googlemail.com宛てのメールも受信できます。既存のユーザーと大文字と小文字だけが違うアカウントを新しく登録することはできません。

メールアドレスを大文字で入力しても問題ありませんか?個人や企業の受信トレイに通常どおり送る場合、大文字が原因で配信が止まることはありません。受信側のメールサーバーは大文字と小文字を区別せず、通常どおりメールを配信します。注意が必要なのは、メールアドレスを完全一致の文字列として比較するログインフォームだけです。

メールIDは大文字と小文字を区別しますか?実際には区別しません。メールIDはメールアドレスの別の呼び方で、Gmail、Outlook、その他の大手メールサービスは大文字と小文字を区別しません。規格上は@より前の大文字を区別するサーバーも認められていますが、まれです。読みやすくするためにIDに大文字を使っても、メールが届かなくなる可能性はほとんどありません。

メールアドレスは小文字で保存すべきですか?アカウントの重複やログインの失敗を防ぐため、比較とインデックスは小文字で行ってください。ユーザーが入力した元の表記を表示用の列に残しておくと、通知をきれいな表記で送れます。列を1つしか持てない場合は、入力されたとおりに保存し、lower()で比較してください。そうすれば元の表記を失いません。

大文字が原因でメールがバウンスすることはありますか?ごくまれです。Admin@とadmin@を別のメールボックスとして扱うように設定された、特殊なサーバーの場合だけです。大文字を含むアドレスでバウンスした場合は、まず入力ミスや存在しないメールボックスなど、別の原因を疑ってください。どちらが原因かは、バウンスメールのコードでわかります。詳しくはハードバウンスとソフトバウンスの違いで解説しています。

大文字が原因でメールが届かなくなることはありませんが、入力ミスは原因になります。次の送信の前に連絡先リストを整理する場合は、Giggal.ai(英語)でリストをチェックし、存在しないメールボックスや壊れたドメインを先に見つけてください。

メールアドレスが実際に存在するか確認しましょう

無料クレジット1,000件付き。クレジットカードは不要です。

無料で試せます クレジットに有効期限はありません 結果が不明のときはクレジットを返却