Moin!
Wo ist das Problem? Wenn jemand wirklich so dumm ist, eine »Umlautdomain« einzusetzen, kann er ja die Punycode-Form angeben. Der einzige mir vorstellbare vernünftige Grund, eine derartige Domain einzusetzen, ist als Fallback, falls jemand ausversehen den Umlaut eingeben hat.
Das Problem ist, dass das Punycode-Äquivalent niemandem bekannt sein wird - und selbst wenn, es dann wegen absoluter Unmerkbarkeit ignoriert würde.
Außerdem liefert der diskutierte RegEx ja nur eine ja/nein-Entscheidung. Er gibt keinen Hinweis "könnte vielleicht als Punycode-Äquivalent durchgehen".
Und selbst das wäre herzlich irrelevant, weil: Die Menge gültiger Domains ist immer noch wesentlich größer als die Menge registrierter Domains, und die Menge registrierter Domains ist größer als die Menge für Mail genutzter Domains.
Eine Prüfung auf eine regelgerechte Domainangabe (wobei diese Prüfung _allumfassend_ sein muß) macht also nur dann Sinn, wenn man diese Information nicht alleine stehen läßt. Also in einem zweiten Schritt beispielsweise einen DNS-Lookup macht, um danach dann direkt eine Mail zu versenden - dies alles nur als Schutz, dass man normgerechte Daten ins Netz sendet, sonst nichts weiter.
Es ist leider eine nicht bestreitbare Tatsache: Man kann der Angabe einer Mailadresse nicht ansehen, ob sie gültig ist, existiert und wahrgenommen wird. Dazu muß man immer eine Mail an die Adresse senden und eine Reaktion fordern.
Insofern halte ich meinen ausdrücklich oberflächlichen Test, ob in der Angabe genau ein "@" und danach mindestens ein Punkt vorkommt, für vollkommen ausreichend und absolut zukunftssicher, wenn man _ganz_ dumme Fehleingaben vermeiden will.
Allerdings ist meine Praxiserfahrung, dass die Benutzer, statt sich irgendeinen Schwachsinn auszudenken, viel eher bei ihrer eigenen Mailadresse vertippen. Und was hilft es, wenn aus "user@sub1.example.com" aus versehen "user@sub2.example.com" wird? Kann man mit keinem Regex der Welt herausfinden.
Oder noch schlimmer: aus "user@example.com" wird "uer@example.com".
- Sven Rautenberg
"Habe den Mut, dich deines eigenen Verstandes zu bedienen!" (Immanuel Kant)