Mail-Adressen auf Gültigkeit prüfen

11.11.2008 | | Tags: | 2 Kommentare

Es ist immer mal wieder erforderlich, eingegebene Mail-Adressen auf ihre Gültigkeit hin zu prüfen. Am simpelsten lässt sich das mit regulären Ausdrücken handhaben. Der folgende Code gibt entsprechend True (Adressform korrekt) oder False (Adressform nicht korrekt) zurück:

if (ereg("^[_a-zA-Z0-9-]+
(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]
+\.([a-zA-Z0-9]{2,4})$",
$mailadresse))

Die Mail-Adresse kann am Anfang aus beliebigen Ziffern, Buchstaben und den Sonderzeichen “_” und “-” bestehen. Als Trennzeichen ist der “.” zulässig. Nach dem “@” muss ein Domainname aus ebenfalls beliebigen Ziffern, Buchstaben oder dem Bindestrich folgen. Nach dem “.” als Trennzeichen zur TLD muss nochmals eine Buchstabenfolge folgen.


Share on Facebook

2 Kommentare

wingi  am 11. Januar 2009

1. Keine Umlautdomain noch IP-Adresse möglich
2. keine Subdomain möglich
3. Haupt-Domains haben eine begrenzte Anzahl von Buchstaben
4. Im Benutzernamenn dürfen mehr Zeichen (! # $ % & ‘ * + – / = ? ^ _ ` { | } ~) als im Regex angegeben vorkommen
4. Immerhin richtig: Der Punkt im Localpart weder am Anfang noch am Ende …

Da mir noch mehr einfält, hier lieber ein paar Beispiele für korrekte Emails:
# abc@example.com
# Abc@example.com
# aBC@example.com
# abc.123@example.com
# 1234567890@example.com
# _______@example.com
# abc+mailbox/department=shipping@example.com
# !#$%&’*+-/=?^_`.{|}~@example.com (all of these characters are allowed)
# “abc@def”@example.com (anything goes inside quotation marks)
# “Fred \”quota\” Bloggs”@example.com

Und hier ein paar nicht korrekte:
# Abc.example.com (character @ is missing)
# Abc.@example.com (character dot(.) is last in local part)
# Abc..123@example.com (character dot(.) is double)
# A@b@c@example.com (only one @ is allowed outside quotations marks)
# ()[]\;:,@example.com

Viel Spaß nochhhh !

Parkrocker  am 11. Januar 2009

Zu 1) und 2):
Das war auch nicht beabsichtigt
Zu 3):
Irrelevant
Zu 4)
Und? Habe ich das irgendwo bestritten? Im Gegenteil habe ich noch ausdrücklich darauf hingewiesen, welche Zeichen möglich sind

Zum Rest:
Wer mal gucken möchte, wo der “Experte” abgeschrieben hat, nimmt diesen Link
http://www.google.de/search?hl=de&q=%22%23+Abc.example.com+character+%40+is+missing%22&btnG=Google-Suche&meta=
;)