Das Format der E-Mail-Adresse lautet: local-part@domain-part
(max. 64@255 Zeichen, nicht mehr als 256 insgesamt).
Le site local-part
y domain-part
könnte verschiedene zulässige Zeichen haben, aber das ist noch nicht alles, denn es gibt noch mehr Regeln dafür.
Im Allgemeinen kann der lokale Teil diese ASCII-Zeichen enthalten:
- lateinische Kleinbuchstaben:
abcdefghijklmnopqrstuvwxyz
,
- lateinische Großbuchstaben:
ABCDEFGHIJKLMNOPQRSTUVWXYZ
,
- Ziffern:
0123456789
,
- Sonderzeichen:
!#$%&'*+-/=?^_`{|}~
,
- Punkt:
.
(nicht das erste oder letzte Zeichen oder die Wiederholung, außer in Anführungszeichen),
- Interpunktionszeichen wie:
"(),:;<>@[\]
(mit einigen Einschränkungen),
- Kommentare:
()
(sind innerhalb von Klammern erlaubt, z. B. (comment)john.smith@example.com
).
Teil des Bereichs:
- lateinische Kleinbuchstaben:
abcdefghijklmnopqrstuvwxyz
,
- lateinische Großbuchstaben:
ABCDEFGHIJKLMNOPQRSTUVWXYZ
,
- Ziffern:
0123456789
,
- Bindestrich:
-
(nicht erstes oder letztes Zeichen),
- kann die IP-Adresse in eckigen Klammern enthalten:
jsmith@[192.168.2.1]
o jsmith@[IPv6:2001:db8::1]
.
Diese E-Mail-Adressen sind gültig:
prettyandsimple@example.com
very.common@example.com
disposable.style.email.with+symbol@example.com
other.email-with-dash@example.com
x@example.com
(einbuchstabiger Ortsteil)
"much.more unusual"@example.com
"very.unusual.@.unusual.com"@example.com
"very.(),:;<>[]\".VERY.\"very@\ \"very\".unusual"@strange.example.com
example-indeed@strange-example.com
admin@mailserver1
(lokaler Domänenname ohne Top-Level-Domäne)
#!$%&'*+-/=?^_`{}|~@example.org
"()<>[]:,;@\\"!#$%&'-/=?^_`{}| ~.a"@example.org
" "@example.org
(Leerzeichen zwischen den Anführungszeichen)
example@localhost
(gesendet von localhost)
example@s.solutions
(siehe die Liste der Internet-Top-Level-Domains )
user@com
user@localserver
user@[IPv6:2001:db8::1]
Und diese Beispiele sind ungültig:
Abc.example.com
(nein @
Zeichen)
A@b@c@example.com
(nur eine @
ist außerhalb der Anführungszeichen erlaubt)
a"b(c)d,e:f;gi[j\k]l@example.com
(keines der Sonderzeichen in diesem lokalen Teil ist außerhalb der Anführungszeichen erlaubt)
just"not"right@example.com
(in Anführungszeichen gesetzte Zeichenfolgen müssen durch Punkte getrennt sein oder das einzige Element sein, aus dem der lokale Teil besteht)
this is"not\allowed@example.com
(Leerzeichen, Anführungszeichen und Backslashes dürfen nur innerhalb von Zeichenketten in Anführungszeichen und mit vorangestelltem Backslash vorkommen)
this\ still\"not\allowed@example.com
(Leerzeichen, Anführungszeichen und Backslashes müssen in Anführungszeichen gesetzt werden, auch wenn sie durch einen Backslash ersetzt werden)
john..doe@example.com
(Doppelpunkt vor @
); (mit Vorbehalt: Gmail lässt dies durch)
john.doe@example..com
(Doppelpunkt nach @
)
- eine gültige Adresse mit einem führenden Leerzeichen
- eine gültige Adresse mit einem Leerzeichen am Ende
Quelle: E-Mail Adresse bei Wikipedia
Perl's RFC2822 Regex für die Validierung von E-Mails:
(?:(?:\r\n)?[ \t])*(?:(?:(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t]
)+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:
\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(
?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[
\t]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\0
31]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\
](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+
(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:
(?:\r\n)?[ \t])*))*|(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z
|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)
?[ \t])*)*\<(?:(?:\r\n)?[ \t])*(?:@(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\
r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[
\t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)
?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t]
)*))*(?:,@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[
\t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*
)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t]
)+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*)
*:(?:(?:\r\n)?[ \t])*)?(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+
|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r
\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:
\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t
]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031
]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](
?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?
:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?
:\r\n)?[ \t])*))*\>(?:(?:\r\n)?[ \t])*)|(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?
:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?
[ \t]))*"(?:(?:\r\n)?[ \t])*)*:(?:(?:\r\n)?[ \t])*(?:(?:(?:[^()<>@,;:\\".\[\]
\000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|
\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>
@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"
(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t]
)*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\
".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?
:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[
\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*|(?:[^()<>@,;:\\".\[\] \000-
\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(
?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)*\<(?:(?:\r\n)?[ \t])*(?:@(?:[^()<>@,;
:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([
^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\"
.\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\
]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*(?:,@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\
[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\
r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\]
\000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]
|\\.)*\](?:(?:\r\n)?[ \t])*))*)*:(?:(?:\r\n)?[ \t])*)?(?:[^()<>@,;:\\".\[\] \0
00-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\
.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,
;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?
:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*
(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".
\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[
^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]
]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*\>(?:(?:\r\n)?[ \t])*)(?:,\s*(
?:(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\
".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:(
?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[
\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t
])*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t
])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?
:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|
\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*|(?:
[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\
]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)*\<(?:(?:\r\n)
?[ \t])*(?:@(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["
()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)
?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>
@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*(?:,@(?:(?:\r\n)?[
\t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,
;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t]
)*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\
".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*)*:(?:(?:\r\n)?[ \t])*)?
(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".
\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:(?:
\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\[
"()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])
*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])
+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\
.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z
|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*\>(?:(
?:\r\n)?[ \t])*))*)?;\s*)
Der vollständige Regexp für RFC2822-Adressen umfasste lediglich 3,7k.
Siehe auch: RFC 822 E-Mail-Adressen-Parser in PHP .
Die formalen Definitionen von E-Mail-Adressen sind vorhanden:
- RFC 5322 (Abschnitte 3.2.3 und 3.4.1, obsolete RFC 2822), RFC 5321, RFC 3696,
- RFC 6531 (zulässige Zeichen).
Verwandt:
267 Stimmen
Le site
+
erlaubt ist. Es macht mich wahnsinnig, wenn Websites dies nicht zulassen, weil meine E-Mail eine+
und viele Websites erlauben dies nicht.0 Stimmen
Ich habe gerade ein Kopfgeld ausgesetzt. Es gibt bereits gute Antworten, aber sie erklären nicht, welche Zeichen im Serverteil der E-Mail-Adresse erlaubt sind. Ich werde eine vollständige Antwort auf meine Fragen akzeptieren (Benutzername und Serverteil erklärt).
0 Stimmen
Vielleicht auch RFC2821 und RFC2822 .
12 Stimmen
Eine frühere Frage, die denselben Stoff behandelt: stackoverflow.com/questions/760150/ . Das Traurige ist, dass, obwohl diese Frage fast 8 Monate älter ist als diese, die ältere Frage viel bessere Antworten hat. Fast alle der folgenden Antworten waren bereits veraltet, als sie ursprünglich veröffentlicht wurden. Siehe Wikipedia-Eintrag (und keine Sorge, es hat relevante offizielle Referenzen ).
1 Stimmen
Nach PHPs
fitler_var()
die Validierung dieser E-Mail wäre korrekt:_.-+~^*'`{GEO}`'*^~+-._@example.com
29 Stimmen
Im Gegensatz zu mehreren Antworten, Räume sind im lokalen Teil von E-Mail-Adressen erlaubt, falls angegeben.
"hello world"@example.com
gültig ist.1 Stimmen
Beim Einrichten einer Google Dev Console-E-Mail-Gruppe lässt Google das + nicht zu, obwohl die E-Mail-Adresse bei der Erstellung des Google Mail-Kontos zugelassen worden sein muss. !!!!!
13 Stimmen
@LaraRuffleColes - Wenn Sie ein E-Mail-Konto bei Google Mail einrichten, können Sie keine Adressen mit einem "+"-Zeichen erstellen. Mit dem "+"-Zeichen ("Plus-Adressierung") kann jeder, der eine Gmail-Adresse hat, ein "+"-Zeichen gefolgt von einer "Zeichenfolge" an das Ende seines Benutzernamens anhängen, um eine "alternative" ("Alias"-)E-Mail-Adresse für sein Konto zu erstellen. Beispiel: "example@gmail.com", "beispiel+tag@gmail.com". Ein typischer (und wahrscheinlich "primärer") Verwendungszweck ist die Erstellung von Alias-E-Mail-Adressen für Ihr Konto, die es Ihnen ermöglichen, eingehende E-Mail-Nachrichten zu kennzeichnen und zu filtern, theoretisch nach Absender gefiltert.
8 Stimmen
Sie denken, das '+' macht Sie verrückt? Mein Nachname hat ein Hochkomma. Wissen Sie, wie viele Websites ich immer noch zum Absturz bringen kann, wenn ich meinen Nachnamen eingebe? Viel zu viele, aber zum Thema: Ich habe die E-Mail-Adresse Patrick.o'hara aufgegeben, weil fast niemand sie zulässt, obwohl sie gültig ist.
4 Stimmen
@DanHerbert Vielleicht wollen sie nicht, dass die Leute einfach das System zu missbrauchen, indem eine einzige echte E-Mail-Adresse zur Erstellung mehrerer Konten verwendet wird.
10 Stimmen
@Andrew Das Gegenteil ist viel häufiger der Fall. Wenn ich einer Website nicht trauen kann, dass sie korrekte E-Mail-Adressen zulässt, traue ich ihr auch nicht zu, mit meinen persönlichen Daten umzugehen.
0 Stimmen
@DanHerbert, weil Websites nicht wollen, dass 2 verschiedene Benutzer die gleiche E-Mail verwenden. Stellen Sie sich vor, sie bieten Rabatte für Erstkäufer an, und bei jedem Einkauf könnten Sie behaupten, Sie seien ein neuer Kunde, indem Sie einfach ein + Kauderwelsch nach Ihrer E-Mail hinzufügen. Würden Sie das wollen?
4 Stimmen
@HassanAzimi Der Versuch, Missbrauch zu verhindern, indem man gültige E-Mail-Adressformate blockiert, ist keine großartige Strategie und würde nur eine unglaublich kleine Anzahl von schlechten Akteuren aufhalten, die diese Beschränkung ganz einfach umgehen können. Außerdem ist es keine allgemeingültige Regel, dass alle E-Mail-Anbieter alles ignorieren, was nach einem
+
Zum Zeitpunkt meines ursprünglichen Kommentars funktionierte dies nur mit Google Mail. Viele der größeren Anbieter gehen inzwischen so vor, aber es ist immer noch kein wirksames Mittel, um schlechtes Verhalten zu unterbinden, und wird mehr ehrliche als unehrliche Nutzer verärgern.1 Stimmen
@DanHerbert Ich habe es bei MSN, AOL und YAHOO versucht, und bei keinem von ihnen kann man bei der Erstellung einer neuen E-Mail ein Plus irgendwo einfügen, also ja, es ist keine gültige E-Mail-Adresse.
0 Stimmen
@DanHerbert Ein ähnliches Ärgernis wie ich sind Websites, die ein einzelnes Zeichen als Teil der E-Mail nicht zulassen, z. B. a@gmail.com ist völlig gültig, aber viele Websites lassen es nicht zu, darunter auch einige Websites von Fluggesellschaften.
2 Stimmen
@DanHerbert Huch, ich habe den +-Trick schon angewendet, bevor es Gmail überhaupt gab, und zwar auf meinen eigenen Mailservern.
8 Stimmen
@AmirHassanAzimi - Das ist eine falsche und fehlerhafte Logik. Die Tatsache, dass einige Websites es nicht zulassen, dass Sie ein Konto mit einer
+
bedeutet dies keineswegs, dass+
"ist keine gültige E-Mail-Adresse". Sie akzeptieren, verarbeiten und bearbeiten weiterhin E-Mails, die eine+
darin, weil es est gültig. Websites, die dies nicht zulassen, fügen eine Einschränkung hinzu, um (gültige) E-Mail-Adressen zu nutzen, die+
.1 Stimmen
@ChristopherCashell Versuchen Sie, die Perspektive des Unternehmens einzunehmen, d. h. eine E-Mail zu haben bedeutet, dass Sie mehrere E-Mails fälschen können. Es liegt an Ihnen/dem Unternehmen, das zu akzeptieren oder nicht, aber ich habe bereits erklärt, warum das eine schlechte Praxis ist.