Bei E-Mail-Adressen wird zwischen Groß- und Kleinschreibung unterschieden?

305

Ich habe gelesen, dass der erste Teil der E-Mail standardmäßig zwischen Groß- und Kleinschreibung unterscheidet. Ich habe jedoch versucht, eine E-Mail an zu senden [email protected], [email protected]und [email protected]- es ist jeweils angekommen.

Wie gehen Mailserver mit Benutzernamen um? Ist es möglich, mit Fall zu verpassen und diese Nachricht würde nicht zugestellt werden? Ist es wirklich sehr wichtig, genau die gleiche Groß- und Kleinschreibung zu verwenden, die bei der Registrierung bei der Angabe Ihrer E-Mail-Adresse geschrieben wurde?

Stalker
quelle
Verwandte Frage - stackoverflow.com/questions/9013726/…
Luke Girvin

Antworten:

366

Aus RFC 5321, Abschnitt 2.3.11 :

Die Standardkonvention für die Benennung von Postfächern lautet "local-part @ domain". Die zeitgemäße Verwendung ermöglicht einen viel breiteren Anwendungsbereich als einfache "Benutzernamen". Infolgedessen und aufgrund einer langen Geschichte von Problemen, bei denen Zwischenhosts versucht haben, den Transport durch Modifizieren zu optimieren, MUSS der lokale Teil nur von dem im Domänenteil der Adresse angegebenen Host interpretiert und semantisch zugewiesen werden.

Ja, der Teil vor dem "@" kann zwischen Groß- und Kleinschreibung unterscheiden, da er vollständig vom Host-System gesteuert wird. In der Praxis unterscheiden jedoch keine weit verbreiteten Mail-Systeme unterschiedliche Adressen je nach Fall.

Der Teil nach dem @ -Zeichen ist jedoch die Domäne und gemäß RFC 1035 , Abschnitt 3.1,

"Nameserver und Resolver müssen [Domänen] ohne Berücksichtigung der Groß- und Kleinschreibung vergleichen."

Kurz gesagt, Sie können E-Mail-Adressen sicher ohne Berücksichtigung der Groß- und Kleinschreibung behandeln.

Mike E.
quelle
81
"Kurz gesagt, Sie können E-Mail-Adressen ohne Berücksichtigung der Groß- und Kleinschreibung behandeln." Ich würde es stärker formulieren: "Es ist unsicher, E-Mail-Adressen so zu behandeln, dass zwischen Groß- und Kleinschreibung unterschieden wird." Insbesondere bei der Suche nach Duplikaten in Benutzerdatenbanken usw.
Geert-Jan
61
Ich würde der Schlussfolgerung nicht zustimmen. Wenn Sie nach Duplikaten in einer Datenbank suchen - ja, eine Übereinstimmung ohne Berücksichtigung der Groß- und Kleinschreibung ist wahrscheinlich der beste Weg, aber ich habe Code gesehen, bei dem die E-Mail-Adresse vor dem Senden in Kleinbuchstaben umgewandelt wird. Das ist keine gute Idee, da es eine kleine Chance gibt, dass es nicht geliefert wird. Wie Sie damit umgehen, hängt also von den Folgen eines Fehlers ab und davon, was Sie zu diesem Zeitpunkt mit den E-Mail-Adressen tun (Zusammenstellen einer Liste eindeutiger Adressen, Senden einer E-Mail usw.).
Peter Bagnall
11
Kennt jemand eine Liste von Mail-Produkten, die (a) eine [email protected] ablehnen, wenn der Benutzer [email protected] gültig ist, oder (b) die Erstellung von zwei unterschiedlichen Mailboxen zulässt: John .Doe @ company.com und [email protected]?
MSC
51
Ich arbeite in einer großen Firma und es gibt eine andere Person mit dem gleichen Vor- und Nachnamen. Ich habe heute festgestellt, dass sich sein lokaler Teil nur in der Großschreibung von meinem unterscheidet. Dies hat ordnungsgemäß funktioniert, daher war ich überrascht zu sehen, dass "keine weit verbreiteten Mail-Systeme unterschiedliche Adressen je nach Fall unterscheiden". Wir verwenden MS Exchange, das ich als "weit verbreitet" bezeichnen würde.
Matthew James Briggs
7
RFC 5321 2.4. Allgemeine Syntaxprinzipien und Transaktionsmodell - SMTP-Implementierungen MÜSSEN darauf achten, dass der Fall von lokalen Postfachteilen erhalten bleibt. Insbesondere für einige Hosts unterscheidet sich der Benutzer "Smith" vom Benutzer "Smith". Postfachdomänen folgen normalen DNS-Regeln und unterscheiden daher nicht zwischen Groß- und Kleinschreibung.
Adam111p
43

Ich weiß, dass dies eine alte Frage ist, aber ich möchte hier nur einen Kommentar abgeben: In jedem Fall wird bei E-Mail-Adressen zwischen Groß- und Kleinschreibung unterschieden. Die meisten Benutzer wären "sehr unklug", eine E-Mail-Adresse aktiv zu verwenden, für die Großbuchstaben erforderlich sind. Sie würden die Adresse bald nicht mehr verwenden, weil ihnen ein Großteil ihrer Post fehlen würde. (Es sei denn, sie haben einen bestimmten Grund, die Dinge zu erschweren, und sie erwarten E-Mails nur von bestimmten Absendern, die sie kennen.)

Dies liegt daran, dass sowohl unvollkommene Menschen als auch unvollkommene Software existieren (Überraschung!), Bei der davon ausgegangen wird, dass alle E-Mails in Kleinbuchstaben geschrieben sind. Aus diesem Grund senden diese Menschen und Software Nachrichten mit einer "Kleinbuchstabenversion" der Adresse, unabhängig davon, wie sie bereitgestellt wurde zu ihnen. Wenn der Empfänger solche Nachrichten nicht empfangen kann, dauert es nicht lange, bis er feststellt, dass viel fehlt, und zu einer E-Mail-Adresse wechselt, die nur in Kleinbuchstaben geschrieben ist, oder wenn der Server so eingerichtet wird, dass die Groß- und Kleinschreibung nicht berücksichtigt wird.

PaulOTron2000
quelle
14
Dies ist eine aufschlussreiche Anwendung des Postelschen Gesetzes en.wikipedia.org/wiki/Robustness_principle . Es bleibt falsch, Software zu schreiben, bei der davon ausgegangen wird, dass bei lokalen Teilen von E-Mail-Adressen die Groß- und Kleinschreibung nicht berücksichtigt wird. Ja, da es viele falsche Software gibt, ist es auch weniger robust, Groß- und Kleinschreibung zu verlangen, wenn Sie die E-Mail annehmen .
Zigg
1
Eines der Dinge, die mich am meisten frustrieren, sind Websites , die mich dazu zwingen , meine E-Mails in Kleinbuchstaben zu schreiben. Ich habe gerade einen wütenden Kommentar an Twitch.tv über genau diese Sache in Bezug auf ihre Support-Site abgegeben. Sie blockieren Sie auch die Eingabe in Großbuchstaben auf ihrer Website. Obwohl ich weiß, dass mein E-Mail-Server sie ohne Berücksichtigung der Groß- und Kleinschreibung behandelt und ich weiß, dass der RFC angibt, dass zwischen Groß- und Kleinschreibung unterschieden wird, sollten Websites NIEMALS Annahmen treffen und einfach durchgehen, was der Benutzer eingibt. MAN das ist so nervig !!!
Mark A. Donohoe
Wenn ich meine E-Mail-Adresse irgendwo eingebe, bevorzuge ich die Verwendung von Groß- und Kleinschreibung, damit sie besser lesbar ist. Zum Beispiel: [email protected] (Nicht meine wirkliche Adresse.) Ich mache das, obwohl ich die E-Mail ohne Großbuchstaben bekomme.
PaulOTron2000
Als Software-Autor möchten Sie jedoch, dass Ihr Dienst einer der wenigen ist, die mit dieser E-Mail, bei der zwischen Groß- und Kleinschreibung unterschieden wird, die richtigen Dinge für diese Person tun.
Klesun vor
31

Viel zu spät zu diesem Beitrag, aber ich habe etwas anderes zu sagen ...

>> "Are email addresses case sensitive?"

Nun, "Es kommt darauf an ..." (TM)

Einige Unternehmen halten dies für eine gute Idee, und ihre E-Mail-Server erzwingen die Groß- und Kleinschreibung.

Für diese verrückten Orte gilt: "Ja, bei E-Mails wird zwischen Groß- und Kleinschreibung unterschieden."

Hinweis: Nur weil eine Spezifikation besagt, dass Sie etwas tun können, bedeutet dies nicht, dass dies eine gute Idee ist.

Das Prinzip von KISS legt nahe, dass unsere Systeme E-Mails verwenden, bei denen die Groß- und Kleinschreibung nicht berücksichtigt wird.

Das Robustheitsprinzip legt nahe, dass wir E-Mails mit Groß- und Kleinschreibung akzeptieren.

Lösung:

  • Speichern Sie E-Mails mit Groß- und Kleinschreibung
  • Senden Sie E-Mails mit Groß- und Kleinschreibung
  • Führen Sie interne Suchvorgänge ohne Berücksichtigung der Groß- und Kleinschreibung durch

Dies würde bedeuten, dass, wenn diese E-Mail bereits vorhanden ist: [email protected]

... und ein anderer Benutzer kommt vorbei und möchte diese E-Mail verwenden: [email protected]

... dass unsere Suchlogik ohne Berücksichtigung der Groß- und Kleinschreibung eine Fehlermeldung "Diese E-Mail existiert bereits" zurückgibt.

Jetzt müssen Sie eine Entscheidung treffen: Ist diese Lösung in Ihrem Fall angemessen?

Wenn nicht, können Sie Kunden, die Unterstützung für ihre E-Mails mit Groß- und Kleinschreibung benötigen, eine Zusatzgebühr in Rechnung stellen und eine benutzerdefinierte Logik implementieren, die [email protected] in Ihr System ermöglicht, selbst wenn [email protected] bereits vorhanden ist.

In diesem Fall sieht Ihre E-Mail-Such- / Validierungslogik möglicherweise wie dieser Pseudocode aus:

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 + '"
}

Auf diese Weise erzwingen Sie meistens die Unempfindlichkeit gegenüber Groß- und Kleinschreibung, erlauben Kunden jedoch, für diesen Support zu bezahlen, wenn sie E-Mail-Systeme verwenden, die solchen Unsinn unterstützen.

ps ILIKE ist ein PostgreSQL-Schlüsselwort: http://www.postgresql.org/docs/9.2/static/functions-matching.html

l3x
quelle
8
LIKE / ILIKE für eine genaue Übereinstimmung ist eine schreckliche Idee. Stellen Sie sich eine E-Mail mit %oder wahrscheinlicher vor_
ThiefMaster
18
Ihre Punkte sind großartig! Aber die SQL-Injektion in Ihrem Beispiel ruiniert es
irgendwie
6
@epelc DIESES. Kann nicht mehr zustimmen. Diese Art der Abfrageerstellung sollte nirgendwo geschrieben werden, auch wenn es sich nur um ein Beispiel handelt.
xDaizu
1
@ l3x, obwohl ich nicht so stark gegen den obigen Beispielcode bin wie die anderen, insbesondere weil Sie ihn als Pseudocode aufgerufen haben und er nur zur Veranschaulichung dient, könnten möglicherweise alle oben genannten Kommentare durch Ersetzen Ihrer query = ...Zeilen durch ersetzt werden Einfache query = // Insert case-sensitive/insensitive search hereKommentare halten die Konversation vom Thema SQL-Injection fern und konzentrieren sich auf das, was Sie zeigen möchten. Mit anderen Worten, behalten Sie die Logik bei, nicht die Implementierung. Es wird die Kritiker zum Schweigen bringen.
Mark A. Donohoe
10

IETF Open Standards RFC 5321 2.4. Allgemeine Syntaxprinzipien und Transaktionsmodell

SMTP-Implementierungen MÜSSEN darauf achten, dass der Fall von lokalen Postfachteilen erhalten bleibt. Insbesondere für einige Hosts unterscheidet sich der Benutzer "Smith" vom Benutzer "Smith".

Postfachdomänen folgen normalen DNS-Regeln und unterscheiden daher nicht zwischen Groß- und Kleinschreibung

Adam111p
quelle
3

Per @ l3x kommt es darauf an.

Es gibt eindeutig zwei Arten von allgemeinen Situationen, in denen die richtige Antwort unterschiedlich sein kann, zusammen mit einer dritten, die nicht so allgemein ist:

a) Sie sind ein Benutzer, der private Mails sendet :

Nur sehr wenige modernen E - Mail - Systeme implementieren Groß- und Kleinschreibung, so dass Sie wahrscheinlich feinen Fall zu ignorieren und wählen , was Fall fühlen Sie sich wie verwenden. Es gibt keine Garantie dafür, dass alle Ihre Mails zugestellt werden - aber so wenige Mails würden negativ beeinflusst, dass Sie sich darüber keine Sorgen machen sollten .

b) Sie entwickeln Mail-Software :

Siehe RFC5321 2.4 unten.

Wenn Sie Mail-Software entwickeln, möchten Sie RFC-konform sein. Sie können die E-Mail-Adressen Ihrer eigenen Benutzer unabhängig von Groß- und Kleinschreibung machen, wenn Sie möchten (und Sie sollten es wahrscheinlich tun). Um jedoch RFC-konform zu sein, MÜSSEN Sie externe Adressen als Groß- und Kleinschreibung behandeln .

c) Verwalten von firmeneigenen Listen von E-Mail-Adressen als Mitarbeiter :

Es ist möglich, dass derselbe E-Mail-Empfänger mehrmals zu einer Liste hinzugefügt wird - jedoch in einem anderen Fall. In dieser Situation kann es vorkommen, dass ein Empfänger doppelte E-Mails erhält, obwohl die Adressen technisch unterschiedlich sind. Die Behandlung dieser Situation ähnelt der Situation a), da es wahrscheinlich in Ordnung ist, sie als Duplikate zu behandeln und einen doppelten Eintrag zu entfernen. Es ist jedoch besser, diese als Sonderfälle zu behandeln, indem Sie eine "Erinnerungs" -E-Mail an beide Adressen senden, um sie zu fragen, ob sie Duplikate voneinander sind und wenn ja, welche E-Mail-Adresse der Empfänger von Ihnen bevorzugen würde.

Aus rechtlicher Sicht, wenn Sie ein Duplikat ohne Quittierung / Erlaubnis von beiden Adressen entfernen, können Sie werden verantwortlich gemacht für undichte private Informationen / Authentifizierung zu einer nicht erlaubten Adresse , nur weil zwei tatsächlich Scheid Empfänger hat die gleiche Adresse mit unterschiedlichen Fällen .

Auszug aus RFC5321 2.4:

Der lokale Teil einer Mailbox MUSS als Groß- und Kleinschreibung behandelt werden. Daher MÜSSEN SMTP-Implementierungen darauf achten, dass der Fall von lokalen Postfachteilen erhalten bleibt. Insbesondere für einige Hosts unterscheidet sich der Benutzer "Smith" vom Benutzer "Smith". Das Ausnutzen der Groß- und Kleinschreibung von lokalen Postfachteilen beeinträchtigt jedoch die Interoperabilität und wird nicht empfohlen.

zaTricky
quelle