Im Ergebnis läuft es darauf hinaus, dass es eigentlich nicht möglich ist, eine E-Mail-Adresse richtig zu validieren.
Das ist Unsinn - du kannst eine Adresse sehrwohl auf syntaktische Gültigkeit prüfen. Du kannst aber niemals wissen, ob die Adresse die eingegeben wurde auch tatsächlich existiert oder stimmt.
Das Problem ist eher, dass es eine schlechte Idee ist, selbst einen Prüfalgorithmus zu schreiben und viele im Internet auffindbare Algorithmen einfach Mist sind.
Also dürfte die Prüfung auf das Vorhandensein eines @-Zeichens ausreichen, wenn man nicht mit einer strengeren Prüfung aus versehen echte Adressen mit ausschließen möchte.
Wie wärs mit ordentlich geprüften und getesteten Ausdrücken - die der PHP-Funktion filter_var() z.B.? Die prüfen nicht nur auf das @, sind einfach einzubauen und ziemlich wasserdicht.
- Echtheit der Adresse + Adresse des Users
Hier hilft dann nur die echte Verwendung der eingegebenen Adresse. Du musst also eine Bestätigungsmail an die Adresse schicken, in der sich ein Link befindet, der zum Fertigstellen der Registrierung etc. angeklickt werden muss.
Das hilft genau garnix - wer seine Adresse nicht hergeben will, greift auf eine Wegwerfadresse zurück oder registriert sich zur Not schnell eine Gmail-Adresse genau für diesen Zweck.