/Regexp: E-Mail Adressen prüfen
AllesMeins
- php
Hi,
ich baue gerade an einer Anwendung, die unter anderem auch vom Benutzer eingegeben Mailadressen auf gültige Syntax überprüfen soll. Eigentlich ja keine schwere Übung, ich war auch schon dabei mein Standard-Muster dafür zu kopieren. Dabei kam plötzlich eine Frage auf. Wie ist es eigentlich mit diesen neuen Umlaut- (bzw. Sonderzeichen-)Domains. Dafür wird es ja wohl, früher oder später, auch E-Mail Adressen geben. Was ist da erlaubt? Bzw. Wie sind die Syntaxvorschriften für diese Mailadressen. Wie gehe ich am besten mit diesen Adressen um?
Hat da schon einer Erfahrungen? Welche Sonderzeichen sind dann erlaubt? Wie sieht dann ein gültiges Mail-Überprüfungsmuster aus? Oder ändert sich da für mich nichts und ich kann beruhigt das alte weiter verwenden?
Grüße
Marc
Hallo AllesMeins.
ich baue gerade an einer Anwendung, die unter anderem auch vom Benutzer eingegeben Mailadressen auf gültige Syntax überprüfen soll.
Da bist du nicht der erste:
reguläre Ausdrücke für Homepage und Mailadressen
Einen schönen Donnerstag noch.
Gruß, Mathias
Hi,
aber da steht ja überall nur "Lass es" (also nicht ganz so drastisch, aber so ähnlich) drinne. Und "Lass es" ist eigentlich eine Lösung, die ich nicht mag. Gibts da echt keine Libs/Klassen die das können?
Marc
Hallo AllesMeins.
aber da steht ja überall nur "Lass es" (also nicht ganz so drastisch, aber so ähnlich) drinne.
Ich lese da etwas mehr als „lass es“.
Und "Lass es" ist eigentlich eine Lösung, die ich nicht mag. Gibts da echt keine Libs/Klassen die das können?
Nicht dass ich wüsste. Meine derzeitige Validierung sieht wie folgt aus:
if (substr_count($str_email, '.') >= 1 and # Wenn $str_email mindestens einen Punkt,
substr_count($str_email, '@') == 1 and # genau ein @ enthält,
strrpos($str_email, '.') > strrpos($str_email, '@') and # der letzte Punkt hinter dem @ steht und
strpos($str_email, '.') != (strpos($str_email, '@') - 1)) {} # direkt vor dem @ kein Punkt ist, zulassen.
Erzeugt keine false positives und verhindert dennoch häufige Fehler.
Einen schönen Donnerstag noch.
Gruß, Mathias
Hallo,
[Mailadressen auf gültige Syntax überprüfen]
Eigentlich ja keine schwere Übung, ...
tatsächlich? Das halte ich für ein Gerücht, da vertut man sich nämlich ganz leicht. Hast du eine Ahnung, was für exotische Mailadressen erlaubt sind? Und wie viele Adressen zwar real existieren, aber eigentlich nicht erlaubt sind? Vor allem einige Freemail-Anbieter lassen etliches im User-Teil der Adresse zu, was eigentlich der Spec widerspricht.
Entweder wird also deine Überprüfung so garstig, dass sie viele False Positives liefert und damit existierende Mailadressen als ungültig abweist, oder sie ist so lax, dass sie vieles durchgehen lässt und damit eigentlich nutzlos wird.
Wie ist es eigentlich mit diesen neuen Umlaut- (bzw. Sonderzeichen-)Domains.
Zum Beispiel.
Wie sieht dann ein gültiges Mail-Überprüfungsmuster aus? Oder ändert sich da für mich nichts und ich kann beruhigt das alte weiter verwenden?
Wenn du dich informierst, wie IDNs in "normale" Domainnamen konvertiert werden (ich weiß das nicht), kannst du intern diese Konvertierung durchführen und dann den daraus entstehenden Domainnamen verifizieren. Aber das ist bestimmt nicht die einzige Stolperfalle.
So long,
Martin