yo sepa, la única buena manera de validar un correo electrónico es enviar un correo electrónico y ver si el usuario vuelve al sitio usando un enlace en este correo electrónico. Eso es lo que hacen muchos sitios.
Como usted señala con el enlace a la bien conocida mamut regex, la validación de todas las formas de dirección de correo electrónico es difícil, casi imposible. Es tan fácil hacerlo mal, incluso para correos electrónicos de estilo trivial (¡encontré demasiados sitios rechazando límites en las direcciones de correo electrónico! ¡Y la mayoría de los regex antiguos rechazan los TLD de más de 4 letras!).
AFAIK, "Jean-Luc B. O'Grady" @ example.com y e = mc^2 @ [82.128.45.117] son direcciones válidas ... Mientras que I-Made-It-Up @ Absurd- Domain-Name.info es probable que no sea válido.
Así que, de alguna manera, simplemente verificaría que tenemos algo único, @, algo más, e iríamos: atraparía la mayoría de los errores del usuario (como campo vacío o nombre de usuario en lugar de dirección de correo electrónico).
Si el usuario quiere dar una dirección falsa, simplemente daría una apariencia aleatoria correcta ([email protected] o [email protected]). Y ningún validador detectará los errores tipográficos ([email protected] en lugar de [email protected]).
Si realmente quiere validar correos electrónicos contra RFC completo, le aconsejo utilizar expresiones regulares para dividir @, luego verifique por separado el nombre local y el nombre de dominio. Separa el caso del nombre local comenzando con "de otros casos, etc. Separa el caso del nombre de dominio comenzando con [de otros casos, etc. Dividir el problema en dominios específicos más pequeños, y usar expresiones regulares solo en casos más simples, bien definidos.
Esto consejos se puede aplicar a gran cantidad de usos de expresiones regulares, por supuesto ...
¿estamos hablando de correos electrónicos o direcciones de correo electrónico? – Sietse
Quise decir la dirección de correo electrónico. He corregido mi pregunta para reflejar eso. Gracias – MrValdez