Sollte man die Prüfung von eMail-Adressen innerhalb eines Formulars aufs @ und den Punkt beschränken? Oder ist selbst der Punkt willkürlich? Auslese einer Forumsdiskussion.
Auslöser zur Diskussion war der SELFHTML-Featureartikel »Programmiertechnik: E-Mail-Kontrolle«, in dem Christian Kruse beschreibt (besser: regext), wie man eine vom Nutzer angegebene eMail-Adresse gemäß RFC819 zerpflückt.
Vinzenz Mai kommentiert:
Diese ist – wie die meisten derartigen Prüfungen – fehlerhaft.
Beispiel: Top-Level-Domain .museum ist nicht gestattet.
Siechfreds Einwurf, man könne den regulären Ausdruck innerhalb des Featureartikels dahingehend erweitern, dass er TLDs mit einer Länge von bis zu sechs Zeichen akzeptierte, wird mit einem früheren Zitat von Manuel B. kommentiert:
Und [..] was ist mit TLDs, die es noch nicht gibt? Ein Script, das bewusst zukünftige Entwicklungen begrenzt, ist IMHO eine völlige Fehlplanung.
Vinzenz spricht von der Notwendigkeit eines Webautors, abgelieferte Auftragsarbeiten dauerhaft kontrollieren zu müssen, falls derartige eMail-Prüfungen eingesetzt würden und verweist auf ein Posting MudGuards, das eine Übersicht neuer TLDs aus nicht-englischen Adresszonen enthält, die zukünftig in Gebrauch kommen könnten. Vinzenz:
Wenn diese TLDs in Betrieb gehen, darf der Benutzer solcher
TLDs erwarten, seine Mail-Adresse auch in der ihm geläufigen Schrift einzugeben – und nicht in Punycode buchstabieren zu müssen.
Selbst lesen: Die gesamte Diskussion im SELFHTML-Forum.
Vielen Dank an alle Beteiligten!
Fazit
Ein erstes Fazit kam rückblickend gleich am Anfang von Vinzenz, der bestätigt, was auch schon an anderen Stellen des Selfforums diskutiert wurde:
Viele beschränken ihre Überprüfung auf das Vorhandensein von @
und einem . irgendwo dahinter.
Ein zweites, ernüchterndes Fazit zur Frage »How do I check a valid mail address?« findet sich in der Perl-FAQ:
You can't, at least, not in real time.
Weiterführende Links:
- RFCs: RFC819, RFC2606, RFC2822, RFC822
- Perl-FAQ: How do I check a valid mail address? mit Link auf Tom Christiansens umfangreiches Script, das gegen die gesamte RFC-Spezifikation prüft, die Angabe einer Blackliste von eMail-Adressen akzeptiert und prüft, ob der angegebene Hostname einer Adresse aufgelöst werden kann. (»It's not fast, but it works for what it tries to do.«) [Anmerkung: Das Script ist – auch aus den oben genannten Gründen – in der Praxis sicherlich nicht sinnvoll.]
- Heise: ICANN testet nicht-englische Adresszonen (10.10.2007)