Me pregunto hasta qué punto las personas deben llevar la validación de la dirección de correo electrónico. Mi campo es principalmente el desarrollo web, pero esto se aplica en cualquier parte.
He visto algunos enfoques:
- simplemente verifica si hay un "@" presente, lo cual es muy simple pero, por supuesto, no es tan confiable.
- una prueba de expresiones regulares más compleja para los formatos de correo electrónico estándar
- un regex completo contra RFC 2822 - el problema con esto es que a menudo una dirección de correo electrónico puede ser válida pero probablemente no es lo que el usuario quiso decir
- validación de DNS
- validación SMTP
Como muchas personas pueden saber (pero muchas no), las direcciones de correo electrónico pueden tener muchas variaciones extrañas que la mayoría de las personas no suelen considerar (consulte RFC 2822 3.4.1 ), pero tiene que pensar en los objetivos de su validación: simplemente está tratando de asegurarse de que se pueda enviar un mensaje de correo electrónico a una dirección , o que es lo que el usuario probablemente quiso poner (lo cual es poco probable en muchos de los casos más oscuros de direcciones "válidas").
Una opción que he considerado es simplemente dar una advertencia con una dirección más esotérica pero seguir permitiendo que la solicitud se realice, pero esto agrega más complejidad a un formulario y es probable que la mayoría de los usuarios estén confundidos.
Si bien la validación de DNS / validación de SMTP parece no tener problemas, preveo problemas en los que el servidor de DNS / SMTP está inactivo temporalmente y el usuario no puede registrarse en algún lugar, o el servidor de SMTP del usuario no admite las funciones requeridas.
¿Cómo podrían manejar esto los desarrolladores experimentados? ¿Hay otros enfoques distintos a los que he enumerado?
Edit: ¡Olvidé por completo el más obvio de todos, enviando un correo electrónico de confirmación! Gracias a los que respondieron por señalarlo. Sí, este es bastante infalible, pero requiere problemas adicionales por parte de todos los involucrados. El usuario debe recuperar algunos correos electrónicos y el desarrollador debe recordar los datos del usuario antes de que se confirmen como válidos.