Sven Rautenberg: Mail-Adresse auf Richtigkeit überprüfen

Beitrag lesen

Moin!

Nö, in dem Teil vor @ dürfen mittlerweile auch schon Leerzeichen enthalten sein [...]

Nanu? Das wäre mir neu. Gibt es das irgendwo zum Nachlesen?

Wenn "kompliziertere Zeichen" als simples ASCII im Userteil einer Mailadresse vorkommen, dann erfordern sie unter Umständen ein etwas komplexeres Escaping. Dieses aber in einem RegEx nachzuvollziehen ist extrem aufwendig, der Ausdruck benötigt dann mehr als eine Zeile.

Siehe dazu RFC 2822, Abschnitt 3. Im Grund genommen sind sämtliche Zeichen erlaubt, wenn man sie escaped (Abschnitt 3.2.2), das dort erwähnte quoted-pair kommt als ein Bestandteil von qcontent vor. Dieses ist in quoted-string enthalten. quoted-string ist einer der möglichen Bestandteile eines local-part (Abschnitt 3.4.1), welcher vor dem @ einer addr-spec stehen darf.

Sofern du dir dieses Labyrinth an Verweisen und Definitionen mal genauer anschaust, sollte dir eines recht schnell klarwerden: Eine Mailadresse vollständig und mit allen Regelungen auf syntaktische Gültigkeit zu prüfen ist eine sehr komplizierte Aufgabe. Es ist daher wesentlich einfacher, nur "grob" zu prüfen, ob die Mailadresse den Anforderungen entspricht, und das bedeutet eben nur, ob die Form der addr-spec stimmt: Beliebige Zeichen vor dem @, beliebige Zeichen dahinter - und als strengere Variante muß der Domain-Teil noch einen Punkt haben, obwohl ich mir durchaus gültige Mailadressen ohne Punkt im Domain-Teil vorstellen könnte.

  • Sven Rautenberg