Je me demande jusqu'où les gens devraient aller pour valider leur adresse électronique. Mon domaine est principalement le développement Web, mais cela s'applique n'importe où.
J'ai vu quelques approches:
- Il suffit de vérifier s'il y a un "@" présent, ce qui est tout simple, mais bien sûr, pas si fiable
- un test regex plus complexe pour les formats de messagerie standard
- une regex complète contre la RFC 2822 - le problème, c'est qu'une adresse électronique peut souvent être valide, mais ce n'est probablement pas ce que l'utilisateur voulait dire
- Validation DNS
- Validation SMTP
Comme beaucoup de gens le savent peut-être (mais beaucoup ne le savent pas), les adresses de messagerie peuvent comporter de nombreuses variations étranges que la plupart des gens ne considèrent généralement pas (voir RFC 2822 3.4.1 ), mais vous devez penser aux objectifs de votre validation: essayez-vous simplement de vous assurer qu'un message électronique peut être envoyé à une adresse ou qu'il s'agit bien de ce que l'utilisateur voulait probablement mettre (ce qui est peu probable dans de nombreux cas plus obscurs de 'adresses).
Une option que j'ai envisagée consiste simplement à donner un avertissement avec une adresse plus ésotérique tout en permettant à la requête de passer, mais cela ajoute une complexité supplémentaire à un formulaire et la plupart des utilisateurs risquent d'être confus.
Bien que la validation DNS / SMTP semble être une évidence, je prévois des problèmes lorsque le serveur DNS / SMTP est temporairement indisponible et qu'un utilisateur est incapable de s'inscrire quelque part ou que son serveur SMTP ne prend pas en charge les fonctionnalités requises.
Comment des développeurs expérimentés peuvent-ils gérer cela? Existe-t-il d'autres approches que celles que j'ai énumérées?
Edit: J'ai complètement oublié la plus évidente de toutes, envoyer un e-mail de confirmation! Merci aux personnes qui ont répondu à cette question. Oui, celui-ci est assez infaillible, mais il nécessite des tracas supplémentaires de la part de toutes les personnes impliquées. L'utilisateur doit récupérer certains messages électroniques et le développeur doit garder en mémoire les données de l'utilisateur avant même que leur validité soit confirmée.