Tach!
Mein Ansatz für die Validierung von Mailadressen war bislang immer:
preg_match("/^.+@.+\..+$/", $mail)
- das ist simpel genug, dass man es nicht kaputtkriegen kann. Mindestens ein Zeichen vor dem @, mindestens ein Punkt hinter dem @, getrennt durch Zeichen.
Warum muss da mindestens ein Punkt im Domain-Teil stehen? Wie du schon sagtest, wird mit einer syntaktisch gültigen Adresse nichts weiter ausgesagt. Ich aber ärgere mich immer, wenn ich mal eine Software testen will und root@localhost erfolglos einzugeben versuche. Neulich bestand ein System gar darauf, eine offizielle TLD vorgesetzt zu bekommen, also auch irgendwas@irgendwas.local war nicht eingebbar, obwohl eine an diese Adresse gesendete Mail ihr von mir gewünschtes Ziel problemlos erreicht hätte. Stattdessen musste ich die Mail an einen Account im Internet senden lassen. So ein Unfug.
Ich gebe auch gern mal an völlig unwichtigen Mail-Adressen verlangenden Stellen ...@example.com an. Das schlucken die meisten System, ohne dass es irgendwem nutzt. Sämtliche Prüfverfahren, die nicht die tatsächliche Zustellbarkeit der Mail prüfen, halte ich daher für sinnlos bis kontraproduktiv.
dedlfix.