Sven Rautenberg: Ist meine grundlegende Prüfung einer E-Mail so ok?

Beitrag lesen

Moin!

Kann ich den nachfolgenden Code besser oder schlanker programmieren?
Habt ihr Verbesserungsvorschläge?

Aber ja.

Deine Prüfung ist mir viel zu detailliert. Der User wird mit diesen ganzen Details in der Regel nichts anfangen können. Der gibt seine Mailadresse ein - die kennt er. Und die ist gültig, sonst würde er sie nicht benutzen. Gelegentlich vertippen sich Menschen - dann ist das einzige sinnvolle Validierungsergebnis aber "Fehler in der Mailadresse", damit der User nochmal hinguckt, und seinen offensichtlichen Fehler hoffentlich findet. Die unoffensichtlichen Fehler findet nämlich auch dein Script nicht: "user@tonline.de" beispielsweise ist falsch.

Ich habe lange Zeit einen sehr simplen regulären Ausdruck zum oberflächlichen Prüfen von Mailadressen propagiert: /.+@.+..+/
Mindestens ein Zeichen, ein At, dann wieder Zeichen, ein Punkt, und wieder Zeichen. Damit erschlägst du die formale Prüfung nach "sieht wie eine Mailadresse aus" relativ gut, ohne in die Details gehen zu müssen.

Das Input-Feld vom Typ "Email" macht das in den Browsern, die das schon umsetzen, noch viel schöner.

Da jegliche clientseitige Validierung kein Ersatz für eine serverseitige Validierung ist, kannst du dich bei den Details und den Prüfmöglichkeiten dort austoben. Da du aber eine formale Validierung der Mail sowieso nicht allein durchführen kannst, sondern für Newsletter immer die nachweisbare Zustimmung des Postfachinhabers für das weitere Zustellen des Newsletters brauchst, kommst du um das Double-Opt-In, also das Mailen eines Bestätigungslinks, sowieso nicht umhin. Und damit erschlägst du auch die Mailvalidierung nach formalen Regeln, denn Dinge wie Unzustellbarkeit wegen falscher Domain oder falschem Mailuser sind formal nicht ermittelbar.

- Sven Rautenberg