it-swarm.com.de

Dürfen E-Mail-Adressen nicht alphanumerische Zeichen enthalten?

Ich baue eine Website mit `Django. Die Website könnte bedeutende Benutzer aus nicht englischsprachigen Ländern haben.

Ich möchte nur wissen, ob es technische Einschränkungen gibt, welche Zeichen eine E-Mail-Adresse enthalten kann.

Dürfen E-Mail-Adressen nur englische Alphabete, Zahlen, "_", "@" und "." Enthalten?

Dürfen sie nicht-englische Alphabete wie "é" oder "ü" enthalten?

Dürfen sie chinesische oder japanische oder andere Unicode-Zeichen enthalten?

52
Continuation

E-Mail-Adresse besteht aus zwei Teilenlocal vor @ und domain danach.

Die Regeln für diese Teile sind unterschiedlich:

Für local part Können Sie ASCII verwenden:

  • Lateinische Buchstaben A - Z a - z
  • ziffern 0 - 9
  • sonderzeichen! # $% & '* + -/=? ^ _ `{|} ~
  • punkt., dass es nicht zuerst oder zuletzt und nicht in der Reihenfolge ist
  • leerzeichen und "(),:; <> @ [] -Zeichen sind mit Einschränkungen zulässig (sie sind nur innerhalb einer Zeichenfolge in Anführungszeichen zulässig, einem Backslash oder doppelten Anführungszeichen muss ein Backslash vorangestellt werden).
  • Plus seit 2012 Sie können international Zeichen obenU+007F, Codiert als UTF-8 verwenden.

Domain part Ist eingeschränkter:

  • Lateinische Buchstaben A - Z a - z
  • ziffern 0 - 9
  • bindestrich - das ist nicht der erste oder letzte Bindestrich, mehrere aufeinanderfolgende Bindestriche sind zulässig.

Regex zur Bestätigung

^(([^<>()\[\]\.,;:\[email protected]\"]+(\.[^<>()\[\]\.,;:\[email protected]\"]+)*)|(\".+\"))@(([^<>()[\]\.,;:\[email protected]\"]+\.)+[^<>()[\]\.,;:\[email protected]\"]{2,})

Hoffe das spart dir etwas Zeit.

40

Nun ja. Lesen Sie (zumindest) diesen Artikel aus Wikipedia.

Ich lebe in Argentinien und hier dürfen E-Mails wie ñoñó[email protected]

36
eKek0

Die erlaubte Syntax in einer E-Mail-Adresse wird in RFC 3696 beschrieben und ist ziemlich kompliziert.

Die genaue Regel [für den lokalen Teil; Der Teil vor dem '@'] besteht aus einem beliebigen ASCII -Zeichen einschließlich Steuerelement Zeichen können in Anführungszeichen oder in Anführungsstrichen stehen. Beim Zitieren von benötigt wird, wird das Backslash-Zeichen verwendet, um das folgende zu zitieren Charakter
[...]
Ohne Anführungszeichen können local-Teile aus einer beliebigen Kombination von .__ bestehen. Buchstaben, Ziffern oder Sonderzeichen ! # $% & '* + -/=? ^ _ `. {| } ~
[...]
In .__ sind beliebige Zeichen oder Kombinationen von Bits (als Oktetts) zulässig. DNS-Namen Es gibt jedoch ein bevorzugtes Formular, das von .__ benötigt wird. die meisten Anwendungen ...

... und so weiter, in gewisser Tiefe.

17

Anstatt sich Gedanken darüber zu machen, was E-Mail-Adressen enthalten können und was nicht, was Ihnen wirklich egal ist, testen Sie, ob Ihre Einrichtung E-Mails senden kann oder nicht - das ist es, was Ihnen wirklich wichtig ist! Dies bedeutet, dass Sie tatsächlich eine Bestätigungs-E-Mail senden.

Andernfalls können Sie keinen viel häufiger vorkommenden Fall versehentlicher Tippfehler erkennen, der in jedem von Ihnen erfassten Zeichensatz bleibt. (Quick: Ist [email protected] eine gültige Adresse, die ich auf Ihrer Website verwenden kann oder nicht?) Außerdem werden Benutzer unnötigerweise und unnötig entfremdet, wenn Sie ihnen sagen, dass ihre vollkommen gültige und richtige Adresse falsch ist. Einige Adressen können möglicherweise immer noch nicht verarbeitet werden (dies ist eine notwendige Entfremdung), da die anderen Antworten sagen: Die Verarbeitung von E-Mail-Adressen ist nicht trivial. Aber das ist etwas, was sie herausfinden müssen, wenn sie Ihnen eine E-Mail-Adresse geben wollen!

Sie sollten nur prüfen, ob der Benutzer vor einem @ etwas Text und danach einen Text und die Adresse nicht unverschämt lang ist (z. B. 1000 Zeichen). Wenn Sie eine Warnung ausgeben möchten ("das sieht nach Problemen aus! Gibt es einen Tippfehler? Vor dem Fortfahren noch einmal prüfen"), ist das in Ordnung, aber es sollte den Vorgang zum Hinzufügen von E-Mail-Adressen nicht blockieren.

Wenn Sie nicht daran interessiert sind, E-Mails an sie zu senden, nehmen Sie einfach das, was sie eingeben. Beispielsweise kann die Adresse nur für Gravatar verwendet werden, Gravatar überprüft jedoch alle E-Mail-Adressen trotzdem.

11
Roger Pate

Es gibt die Möglichkeit, Nicht-ASCII-E-Mail-Adressen zu haben, wie in diesem RFC gezeigt: http://tools.ietf.org/html/rfc3490 , aber ich denke, dass dies nicht für alle Länder festgelegt wurde und aus welchen Ich verstehe, dass für jedes Land nur ein Sprachcode zulässig ist, und es gibt auch eine Möglichkeit, ihn in ASCII umzuwandeln, aber das ist kein triviales Problem.

5
James Black

Ich habe E-Mail-Adressen mit einfachen Anführungszeichen gefunden und auch nicht selten. Wir lehnen Whitespace ab (obwohl dies streng genommen erlaubt ist), mehr als ein @ -Zeichen und Adresszeichenfolgen, die insgesamt weniger als fünf Zeichen umfassen. Ich glaube, dass dies mehr Probleme löst, als es verursacht, und bis jetzt, über zehn Jahre und mehrere hunderttausend Adressen, wurde daran gearbeitet, viele Mülladressen abzulehnen. Außerdem gibt es einen Auslöser, um alle E-Mail-Adressen beim Einfügen oder Aktualisieren herunterzuschreiben.

Es ist jedoch unmöglich, eine E-Mail ohne Hin- und Rückfahrt zum Eigentümer zu überprüfen, aber wir können zumindest äußerst verdächtige Daten ablehnen.

2
Allan Peda

Aufbauend auf @ Matas Vaitkevicius 'Antwort: Ich habe die Regex noch ein wenig in Python repariert, damit gültige E-Mail-Adressen wie auf diese Seite und diese Seite von Wikipedia definiert sind mit dieser genialen regex101-Website: https://regex101.com/r/uP2oL7/26

Hoffe das hilft jemandem :) :)

0
pooh17