422 Stimmen

Sind E-Mail-Adressen Groß- und Kleinschreibungsempfindlich?

Ich habe gelesen, dass nach dem Standard der erste Teil einer E-Mail auf die Groß- und Kleinschreibung achtet, aber ich habe versucht, eine E-Mail an name@example.com, Name@example.com und NAME@example.com zu senden - es ist in jedem Fall angekommen.

Wie behandeln Mailserver Benutzernamen? Ist es möglich, mit der Groß- und Kleinschreibung durcheinander zu kommen und dass die Nachricht nicht zugestellt wird? Ist es wirklich sehr wichtig, genau die gleiche Groß- und Kleinschreibung zu verwenden, wie sie bei der Registrierung angegeben wurde, wenn Sie Ihre E-Mail-Adresse angeben?

0 Stimmen

0 Stimmen

483voto

Mike E Punkte 5305

Von RFC 5321, Abschnitt 2.3.11:

Die Standard-Mailbox-Namenskonvention ist definiert als "lokal-teil@domain"; die zeitgenössische Nutzung erlaubt eine viel breitere Palette von Anwendungen als einfache "Benutzernamen". Folglich und aufgrund einer langen Geschichte von Problemen, wenn Zwischenhosts versucht haben, den Transport zu optimieren, indem sie sie modifizieren, muss der Lokalteil nur vom in dem Domain-Teil der Adresse angegebenen Host interpretiert und semantisch zugewiesen werden.

Ja, der Teil vor dem "@" könnte Groß- und Kleinschreibung beachten, da er vollständig unter der Kontrolle des Hostsystems steht. In der Praxis unterscheiden jedoch keine weit verbreiteten Mailsysteme verschiedene Adressen aufgrund der Groß- und Kleinschreibung.

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

"Nameserver und Resolver müssen [Domains] in einer nicht-unterscheidenden Weise vergleichen"

Kurz gesagt, Sie können E-Mail-Adressen als nicht-unterscheidungsfähig behandeln.

113 Stimmen

'Kurz gesagt, Sie können E-Mail-Adressen als nicht-unterscheidungsfähig behandeln.' Ich würde es stärker formulieren: "Sie sind unsicher, E-Mail-Adressen als fallunterschiedlich zu behandeln", besonders beim Überprüfen von Duplikaten in Benutzerdatenbanken usw.

93 Stimmen

Ich würde der Schlussfolgerung widersprechen. Wenn du nach Duplikaten in einer Datenbank suchst - ja, ist eine fallunabhängige Übereinstimmung wahrscheinlich der beste Weg, aber ich habe schon Code gesehen, wo die E-Mail-Adresse vor dem Senden in Kleinbuchstaben konvertiert wird. Das ist keine gute Idee, da besteht eine geringe Chance, dass sie nicht zugestellt wird. Also, wie du damit umgehst, hängt davon ab, was die Folgen des Fehlers sind und was du gerade mit den E-Mail-Adressen machst (eine Liste eindeutiger Adressen zusammenstellen, eine E-Mail senden, etc.).

1 Stimmen

@PeterBagnall dies ist ein ausgezeichneter Punkt, und es wäre schön, ihn in die Antwort zu integrieren.

62voto

PaulOTron2000 Punkte 1055

Ich weiß, dass dies eine alte Frage ist, aber ich möchte hier nur kommentieren: In jedem Fall sind E-Mail-Adressen IN der Groß- und Kleinschreibung sensitiv. Die meisten Benutzer wären "sehr unklug", eine E-Mail-Adresse zu verwenden, die Großbuchstaben erfordert. Sie würden bald aufhören, die Adresse zu verwenden, weil sie viele ihrer E-Mails verpassen würden. (Es sei denn, sie haben einen spezifischen Grund, um Dinge schwierig zu machen, und sie erwarten nur E-Mails von bestimmten Absendern, die sie kennen.)

Das liegt daran, dass unvollkommene Menschen sowie unvollkommene Software existieren, (Überraschung!) die annehmen werden, dass alle E-Mails in Kleinbuchstaben sind, und aus diesem Grund werden diese Menschen und Software Nachrichten mit einer "kleingeschriebenen Version" der Adresse senden, unabhängig davon, wie sie ihnen zur Verfügung gestellt wurde. Wenn der Empfänger solche Nachrichten nicht empfangen kann, wird es nicht lange dauern, bis er bemerkt, dass er viel verpasst, und zu einer E-Mail-Adresse nur in Kleinbuchstaben wechselt oder seinen Server so einrichtet, dass er nicht auf Groß- und Kleinschreibung achtet.

21 Stimmen

Dies ist eine aufschlussreiche Anwendung des Postel-Gesetzes de.wikipedia.org/wiki/Robustness_principle. Es bleibt falsch, Software zu schreiben, die annimmt, dass lokale Teile von E-Mail-Adressen nicht auf Groß- und Kleinschreibung achten, aber ja, angesichts der Vielzahl von falscher Software da draußen, ist es auch weniger robust, Groß- und Kleinschreibung zu verlangen, wenn man die E-Mail akzeptiert.

4 Stimmen

Eines der Dinge, die mich am meisten frustrieren, ist, dass Websites mich dazu zwingen, meine E-Mail in Kleinbuchstaben zu schreiben. Habe gerade einen wütenden Kommentar an Twitch.tv über genau dieses Thema in Bezug auf ihre Support-Seite geschrieben. Sie blockieren dich sogar, Großbuchstaben auf ihrer Website einzugeben. Obwohl ich weiß, dass mein E-Mail-Server sie als Groß- und Kleinschreibung nicht beachtet und ich weiß, dass der RFC besagt, dass es auf Groß- und Kleinschreibung ankommt, sollten Websites NIEMALS Annahmen über beides treffen und einfach eingeben, was der Benutzer eingibt. Das ist so nervig!!!

2 Stimmen

Persönlich ziehe ich es vor, gemischte Groß- und Kleinschreibung zu verwenden, wenn ich meine E-Mail irgendwo eingebe, damit sie besser lesbar ist. Zum Beispiel: JamesTKirk@domain.com (Nicht meine echte Adresse.) Ich mache das, obwohl ich die E-Mail auch ohne Großbuchstaben erhalte.

51voto

l3x Punkte 29224

Ziemlich spät für diesen Beitrag, aber ich habe etwas leicht Anderes zu sagen...

>> "Sind E-Mail-Adressen Groß-/Kleinschreibungssensitiv?"

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

Einige Organisationen denken tatsächlich, dass das eine gute Idee ist, und ihre E-Mail-Server setzen die Groß-/Kleinschreibungssensitivität durch.

Also, für diese verrückten Orte, "Ja, E-Mails sind Groß-/Kleinschreibungssensitiv."

Hinweis: Nur weil eine Spezifikation sagt, dass man etwas tun kann, bedeutet das nicht, dass es eine gute Idee ist.

Das Prinzip von KISS legt nahe, dass unsere Systeme E-Mails ohne Groß-/Kleinschreibungssensitivität verwenden.

Während das Robustheitsprinzip vorschlägt, dass wir Groß-/Kleinschreibungssensitive E-Mails akzeptieren.

Lösung:

  • Speichere E-Mails mit Groß-/Kleinschreibungssensitivität
  • Senden Sie E-Mails mit Groß-/Kleinschreibungssensitivität
  • Führen Sie interne Suchvorgänge mit Groß-/Kleinschreibungssensitivität durch

Dies würde bedeuten, dass wenn diese E-Mail bereits existiert: user@x.com

... und ein anderer Benutzer kommt und diese E-Mail verwenden möchte: USER@x.com

... dass unsere Groß-/Kleinschreibungssensitive Suchlogik eine Fehlermeldung "Diese E-Mail existiert bereits" zurückgeben würde.

Nun haben Sie eine Entscheidung zu treffen: Ist diese Lösung in Ihrem Fall ausreichend?

Wenn nicht, könnten Sie eine Komfortgebühr für die Kunden verlangen, die Unterstützung für ihre Groß-/Kleinschreibungssensitiven E-Mails verlangen und eine benutzerdefinierte Logik implementieren, die es ermöglicht, dass USER@x.com in Ihr System gelangt, selbst wenn user@x.com bereits existiert.

In diesem Fall könnte Ihre E-Mail-Such-/Validierungslogik wie folgt aussehen:

if (benutzer.paidEmailFee) {
   // Groß-/Kleinschreibungsempfindliche E-Mail
   Abfrage = "select * from benutzer where email LIKE ?"
} else {
   // Groß-/Kleinschreibungsempfindliche E-Mail
   Abfrage = "select * from benutzer where email ILIKE ?"
}

So erzwingen Sie größtenteils die Groß-/Kleinschreibungsunempfindlichkeit, ermöglichen es den Kunden jedoch, für diese Unterstützung zu zahlen, wenn sie E-Mail-Systeme verwenden, die solchen Unsinn unterstützen.

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

11 Stimmen

LIKE/ILIKE für eine genaue Übereinstimmung ist eine schreckliche Idee. Stellen Sie sich eine E-Mail vor, die % oder wahrscheinlich _ enthält.

27 Stimmen

Deine Punkte sind großartig! Aber die SQL-Injection in deinem Beispiel macht es irgendwie zunichte :(

9 Stimmen

@epelc DAS. Kann nicht mehr zustimmen. Eine solche Abfrageerstellung sollte nirgendwo geschrieben werden, auch wenn es nur ein Beispiel ist.

21voto

Adam111p Punkte 2983

IETF Open Standards RFC 5321 2.4. Allgemeine Syntaxprinzipien und Transaktionsmodell

SMTP-Implementierungen MÜSSEN darauf achten, die Groß- und Kleinschreibung der lokalen Teile der Mailbox zu erhalten. Insbesondere ist für einige Hosts der Benutzer "smith" unterschiedlich vom Benutzer "Smith".

Mailbox-Domänen folgen den normalen DNS-Regeln und sind daher nicht Groß-/Kleinschreibungssensitiv.

13voto

zaTricky Punkte 1529

Per @l3x, es kommt darauf an.

Es gibt offensichtlich zwei allgemeine Situationen, in denen die korrekte Antwort unterschiedlich ausfallen kann, sowie eine dritte, die nicht so allgemein ist:

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

Sehr wenige moderne E-Mail-Systeme implementieren Groß- und Kleinschreibung, daher können Sie wahrscheinlich die Groß- und Kleinschreibung ignorieren und wählen, welche Schreibweise Sie verwenden möchten. Es gibt keine Garantie, dass alle Ihre E-Mails zugestellt werden - aber so wenige E-Mails würden negativ beeinflusst, dass Sie sich keine Sorgen machen sollten.

b) Sie entwickeln E-Mail-Software:

Sehen Sie den Auszug aus RFC5321 2.4 am Ende.

Wenn Sie E-Mail-Software entwickeln, möchten Sie RFC-konform sein. Sie können die E-Mail-Adressen Ihrer eigenen Benutzer Groß- und Kleinschreibung ignorieren, wenn Sie möchten (und Sie sollten wahrscheinlich). Aber um RFC-konform zu sein, müssen Sie externe Adressen als Groß- und Kleinschreibung beachtend behandeln.

c) Verwalten von geschäftseigenen Listen von E-Mail-Adressen als Mitarbeiter:

Es ist möglich, dass ein und derselbe E-Mail-Empfänger mehrmals zu einer Liste hinzugefügt wird - jedoch mit unterschiedlicher Groß- und Kleinschreibung. In dieser Situation, obwohl die Adressen technisch verschieden sind, könnte es dazu führen, dass ein Empfänger doppelte E-Mails erhält. Wie Sie diese Situation behandeln, ähnelt der Situation a) in dem Sinne, dass es wahrscheinlich in Ordnung ist, sie als Duplikate zu behandeln und einen Duplikateintrag zu entfernen. Es ist jedoch besser, diese als spezielle Fälle zu behandeln, indem Sie beiden Adressen eine "Erinnerungs"-E-Mail senden, um sie zu fragen, ob die Groß- und Kleinschreibung der E-Mail-Adresse korrekt ist.

Von rechtlicher Seite aus könnten Sie, wenn Sie ein Duplikat ohne Bestätigung/Genehmigung beider Adressen entfernen, verantwortlich gemacht werden dafür, dass Sie private Informationen/Authentifizierung an eine nicht autorisierte Adresse weitergeben, einfach weil zwei tatsächlich getrennte Empfänger ansonsten identische Adressen, aber mit unterschiedlicher Groß- und Kleinschreibung haben.

Auszug aus RFC5321 2.4:

Der lokale Teil eines Postfachs muss als Groß- und Kleinschreibung beachtend behandelt werden. Daher müssen SMTP-Implementierungen darauf achten, die Groß- und Kleinschreibung der lokalen Teile von Postfächern zu erhalten. Insbesondere für einige Hosts ist der Benutzer "smith" unterschiedlich vom Benutzer "Smith". Die Ausnutzung der Groß- und Kleinschreibung von lokalen Teilen von Postfächern beeinträchtigt jedoch die Interoperabilität und ist unerwünscht.

4 Stimmen

Für die Vollständigkeit auch aus RFC5321, aber §4.1.2: „Während die obige Definition für den Local-teil relativ großzügig ist, sollte ein Host, der E-Mails empfangen möchte, vermeiden, Mailboxen zu definieren, bei denen der Local-teil (teilweise oder vollständig) die Form Quoted-string erfordert oder verwendet oder bei denen der Local-teil Groß- und Kleinschreibung beachtet. Für alle Zwecke, die das Generieren oder Vergleichen von Local-teilen erfordern (z. B. mit bestimmten Mailbox-Namen), müssen alle zitierten Formen als äquivalent behandelt werden, und das sendende System sollte die Form übertragen, die möglichst wenig Zitieren erfordert.“

1 Stimmen

Das ist interessant. Die Implikation besteht darin, dass das Zitieren und die Großschreibung ähnliche SOLLTE/SOLLTE NICHT/MUSS-Anforderungen haben.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X