verificacion validar sistema por para fuente existe envio electronico cuenta correo como codigo biblioteca activar php email open-source email-validation

validar - sistema biblioteca en php codigo fuente



¿Hay una biblioteca php para la validación de la dirección de correo electrónico? (7)

Necesito validar la dirección de correo electrónico de mis usuarios. Desafortunadamente, hacer un validador que se ajuste a los estándares es difícil

Aquí hay un ejemplo de una expresión de expresiones regulares que intenta cumplir con el estándar

¿Hay alguna biblioteca PHP (preferiblemente de código abierto) que valide la dirección de correo electrónico?


¿Has mirado las funciones filter_ de PHP ? No son perfectos, pero hacen un trabajo bastante decente en mi experiencia.

Ejemplo de uso (devuelve booleano):

filter_var($someEmail, FILTER_VALIDATE_EMAIL);


AFAIK, la única buena manera de validar un correo electrónico es enviar un correo electrónico y ver si el usuario regresa 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 regex mamut, validar 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. la información es probable que no sea válida.

De alguna manera, simplemente verificaría que tenemos algo, un único @, algo más, y lo aceptaremos: atraparía la mayoría de los errores del usuario (como el campo vacío o el nombre de usuario en lugar de la 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 uno realmente quiere validar los correos electrónicos contra RFC completo, le aconsejo que use 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 y bien definidos.
Este consejo se puede aplicar a muchos usos de expresiones regulares, por supuesto ...



Yo recomendaría mirar el código fuente de Zend_Validate_EmailAddress [ fuente ].

Una vez que haya arreglado sus dependencias, simplemente puede hacer lo siguiente:

$mail_validator = new Zend_Validate_EmailAddress(); $mail_validator->isValid($address); // returns true or false

Lo mejor sería obtener la Biblioteca Zend completa en su proyecto a través de svn externa y señalar la ruta de acceso a ella ...

pero puede descargar los archivos necesarios ( 1 , 2 , 3 , 4 , 5 , 6 ) e incluirlos a todos (eliminar las llamadas require_once)


[ACTUALIZADO] He recopilado todo lo que sé sobre la validación de la dirección de correo electrónico aquí: http://isemail.info , que ahora no solo valida sino que también diagnostica problemas con las direcciones de correo electrónico. Estoy de acuerdo con muchos de los comentarios aquí que la validación es solo una parte de la respuesta; ver mi ensayo en http://isemail.info/about .

He cotejado casos de prueba de Cal Henderson, Dave Child, Phil Haack, Doug Lovell y RFC 3696. 158 direcciones de prueba en total.

Ejecuté todas estas pruebas contra todos los validadores que pude encontrar. La comparación está aquí: http://www.dominicsayers.com/isemail

Trataré de mantener esta página actualizada a medida que las personas mejoren sus validadores. Gracias a Cal, Dave y Phil por su ayuda y cooperación en la compilación de estas pruebas y la crítica constructiva de mi propio validador .

La gente debería conocer la errata contra RFC 3696 en particular. Tres de los ejemplos canónicos son, de hecho, direcciones inválidas. Y la longitud máxima de una dirección es de 254 o 256 caracteres, no 320.


Zend_Validate incluye un validador de correo electrónico.

Hay muchas expresiones regulares para validar, desde básicas hasta muy avanzadas. Realmente debe elegir algo que coincida con la importancia de un correo electrónico válido en su aplicación.


Cal Henderson (de Flickr) escribió una coincidencia de dirección de correo electrónico compatible con RFC822 , con una explicación de la RFC y el código que utiliza la RFC para que coincida con las direcciones de correo electrónico. Lo he usado desde hace bastante tiempo sin quejas.

RFC822 (publicado en 1982) define, entre otras cosas, el formato de las direcciones de mensajes de texto de Internet (correo electrónico). Puede encontrar los RFC al buscar en Google: hay muchas copias de ellos en línea. Son un tanto escuetos y extrañamente formateados, pero con un poco de esfuerzo podemos ver a qué se enfrentan.

... Actualizar ...

Como Porges señaló en los comentarios, la biblioteca en el enlace está desactualizada, pero esa página tiene un enlace a una versión actualizada .