Me pregunto hasta qué punto la gente debería llevar la validación de la dirección de correo electrónico. Mi campo es principalmente desarrollo web, pero esto se aplica en cualquier lugar.
He visto algunos enfoques:
- simplemente verificando si hay un "@" presente, que es muy simple pero por supuesto no tan confiable
- una prueba de expresión regular más compleja para formatos de correo electrónico estándar
- una expresión regular completa 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 sea 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 (ver RFC 2822 3.4.1 ), pero hay que pensar en los objetivos de su validación: ¿simplemente está tratando de asegurarse de que un mensaje de correo electrónico se puede enviar 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 lo contrario? válido 'direcciones).
Una opción que he considerado es simplemente dar una advertencia con una dirección más esotérica, pero aún así permitir que se realice la solicitud, pero esto agrega más complejidad a un formulario y es probable que la mayoría de los usuarios se confundan.
Si bien la validación de DNS / validación de SMTP parece no tener en cuenta, preveo problemas en los que el servidor DNS / servidor SMTP está temporalmente fuera de servicio y un usuario no puede registrarse en algún lugar, o el servidor SMTP del usuario no admite las características requeridas.
¿Cómo podrían algunos desarrolladores experimentados aquí manejar esto? ¿Hay otros enfoques que los que he enumerado?
Editar: 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 molestias adicionales por parte de todos los involucrados. El usuario tiene que buscar algún correo electrónico, y el desarrollador necesita recordar los datos del usuario antes de que incluso se confirme que son válidos.