Gültige Zeichen in Email-Adressen bzw. Mailboxnamen

Lesen Sie hier, welche Zeichen in Email Adressen verwendet werden können. Und für Entwickler: wir zeigen auch einen PHP-Code, mit dem die Gültigkeit von Email-Adressen (zumindest was die Zeichen betrifft) geprüft werden kann.

Diese Zeichen sind im Teil einer E-Mail Adresse vor dem @-Zeichen (also links von @) möglich:

  • Buchstaben A-Z und a-z (ohne Akzente und keine Umlaute, kein ß)
  • Ziffern 0-9
  • Die folgenden Sonderzeichen: ! # $ % & ‚ * + – / = ? ^ _ ` . { | } ~

Die folgende Adresse ist daher tatsächlich eine gültige Mail-Adresse:


!#$%&’*+-/=?^_`.{|}~@example.com

(Quelle: Wikipedia)

Beachten Sie bitte, dass diese Sonderzeichen aber nur im Teil vor dem @ der Mailadresse (dem local-part) grundsätzlich erlaubt sind. Für die Domain (der Teil hinter dem @) gelten andere Regeln.

Zusammensetzung einer Mail-Adresse
Zusammensetzung einer Mail-Adresse

Und noch etwas. Die Sonderzeichen sind im local-part der Mailadresse zwar grundsätzlich zugelassen, Sie können aber möglicherweise nicht unbedingt alle diese Zeichen im Mailbox-Namen auf Ihrem eigenen Mailserver benutzen. Welche der Zeichen Sie tatsächlich für Ihre Mailadresse verwenden können, liegt auch an der Konfiguration der Mailserver durch die zuständigen Administratoren bzw. die dafür eingesetzte Software.


Der folgende Abschnitt beschreibt die Prüfung von Mailadressen mit der Programmiersprache PHP.

Prüfung von Email Adressen mit mit PHP

Gefiltert und gereinigt

Mit einem solchen PHP-Code kann eine Email-Adresse auf Gültigkeit geprüft werden (Annahme: die Variable $emailadresse enthält die zu prüfende E-Mail Adresse):

if (filter_var($emailadresse, FILTER_VALIDATE_EMAIL)) {
// alles okay.
} else {
echo 'Bitte prüfen Sie Ihre E-Mail Adresse.';
}

7 Kommentare

  1. Man kann gute Informationen auch schnell und gut rüberbringen.
    Da kann man sich ein Beispiel nehmen.

    Gut gemacht, danke!

  2. Zwei Kleinigkeiten: Es gibt inzwischen auch .info-Endungen, also sollte man da das ganze erweitern. Außerdem würde mich interessieren, was das \. bewirkt? Vielleicht ist ja auch direkt eine Antwort auf meine Mail-Addy möglich, da ich eher selten hier rein gucke.

  3. @Michi: Du hast recht, Danke für den Hinweis. Ist ausgebessert von {2,3} auf {2,6} am Ende der langen Zeile. Damit wird nun auch .museum als gültig erfasst.

    \. bewirkt, dass hier wirklich ein Punkt gemeint ist, und nicht der Punkt als Regular Expression Symbol, wo der Punkt (.) bedeutet, dass an seinem Platz ein (fast) beliebiges Zeichen stehen kann.

    Auszug aus dem Wikipedia-Artikel dazu:
    \ hebt gegebenenfalls die Metabedeutung des nächsten Zeichens auf. […] Auf diese Weise lässt sich auch ein Punkt „.“ mit „\.“ suchen, während nach „\“ mit „\\“ gesucht wird.

    http://de.wikipedia.org/wiki/Regul%C3%A4rer_Ausdruck

  4. Hallo,
    ja ich habe es gesehen, dass der Beitrag schon über 2 Jahre alt ist.
    Da die Seite aber auch in Zukunft aufgerufen werden kann sollte diese auch aktualisiert werden.

    Ich vermisse die deutschen Umlaute und alle „ereg…“ Funktionen sind seit PHP 5.3.0 als DEPRECATED (veraltet) markiert.

  5. Da hat sich noch ein Fehler im regulären Ausdruck eingeschlichen: wenn du in einer Gruppe [….] einen Bindestrich matchen willst, dann muss dieser entweder ganz am Ende stehen oder escaped werden.

  6. Danke, hab’s ausgebessert (hoffentlich korrekt).

  7. Die PHP regex-Erweiterung filter_var ist nur zu gebrauchen wenn die Email keine Sonderzeichen wie äöüÄÖÜ àéè etc.. enthält.

Schreibe einen Kommentar