Ich frage mich, wie weit die Validierung der E-Mail-Adresse gehen soll. Mein Fachgebiet ist in erster Linie die Webentwicklung, dies gilt jedoch überall.
Ich habe ein paar Ansätze gesehen:
- einfach prüfen, ob ein "@" vorhanden ist, was absolut einfach, aber natürlich nicht so zuverlässig ist.
- Ein komplexerer Regex-Test für Standard-E-Mail-Formate
- Ein vollständiger regulärer Ausdruck gegen RFC 2822 - das Problem dabei ist, dass oft eine E-Mail-Adresse gültig ist, aber wahrscheinlich nicht das, was der Benutzer gemeint hat
- DNS-Validierung
- SMTP-Validierung
Wie viele Leute vielleicht wissen (aber viele nicht), können E-Mail-Adressen viele seltsame Variationen aufweisen, die die meisten Leute normalerweise nicht berücksichtigen (siehe RFC 2822 3.4.1 ), aber Sie müssen über die Ziele von nachdenken Ihre Validierung: Versuchen Sie lediglich sicherzustellen, dass eine E-Mail-Nachricht an eine Adresse gesendet werden kann oder dass der Benutzer diese Adresse wahrscheinlich eingeben wollte (was in vielen unklareren Fällen, in denen dies nicht der Fall ist, unwahrscheinlich ist) 'Adressen).
Eine Option, die ich in Betracht gezogen habe, besteht darin, einfach eine Warnung mit einer esoterischeren Adresse zu geben und dennoch zuzulassen, dass die Anforderung bearbeitet wird. Dies erhöht jedoch die Komplexität eines Formulars, und die meisten Benutzer sind wahrscheinlich verwirrt.
Während die DNS-Validierung / SMTP-Validierung ein Kinderspiel zu sein scheint, sehe ich Probleme, wenn der DNS-Server / SMTP-Server vorübergehend außer Betrieb ist und ein Benutzer sich nicht registrieren kann oder der SMTP-Server des Benutzers die erforderlichen Funktionen nicht unterstützt.
Wie könnten einige erfahrene Entwickler hier draußen damit umgehen? Gibt es andere Ansätze als die, die ich aufgelistet habe?
Edit: Ich habe das offensichtlichste von allen völlig vergessen, indem ich eine Bestätigungs-E-Mail geschickt habe! Vielen Dank an die Antwortenden für den Hinweis. Ja, dies ist ziemlich narrensicher, aber es erfordert zusätzlichen Aufwand seitens aller Beteiligten. Der Benutzer muss eine E-Mail abrufen und der Entwickler muss sich die Benutzerdaten merken, bevor sie überhaupt als gültig bestätigt werden.