verificar valido validar tester regular mail expresion existencia existe electronico correo como php email email-verification bouncedemail

valido - Cómo verificar si una dirección de correo electrónico es real o válida usando PHP



validar email php mysql (6)

Debe verificar con SMTP.

Eso significa que debe conectarse al servidor SMTP de ese correo electrónico.

Después de conectarse al servidor SMTP, debe enviar estos comandos:

HELO somehostname.com MAIL FROM: <[email protected]> RCPT TO: <[email protected]>

Si obtiene "<[email protected]> Acceso de retransmisión denegado", significa que este correo electrónico es Inválido.

Hay una clase PHP simple. Puedes usarlo:

http://www.phpclasses.org/package/6650-PHP-Check-if-an-e-mail-is-valid-using-SMTP.html

¿Es posible verificar si existe un correo electrónico similar a este sitio web?

http://verify-email.org/

<?php if($_POST[''email''] != ''''){ // The email to validate $email = $_POST[''email'']; // An optional sender function domain_exists($email, $record = ''MX''){ list($user, $domain) = explode(''@'', $email); return checkdnsrr($domain, $record); } if(domain_exists($email)) { echo(''This MX records exists; I will accept this email as valid.''); } else { echo(''No MX record exists; Invalid email.''); } } ?> <form method="POST"> <input type="text" name="email"> <input type="submit" value="submit"> </form>

Esto es lo que tengo ahora. Comprueba si el dominio existe , pero no puede verificar si el correo electrónico del usuario existe en ese dominio . ¿Es posible hacer eso usando PHP?


Debe verificar si el correo electrónico tiene un registro MX. El componente de filtro de Zend-Framwork tiene los métodos para validar el correo electrónico contra el registro MX.



He estado buscando esta misma respuesta toda la mañana y casi descubrí que probablemente sea imposible verificar si realmente existe cada dirección de correo electrónico que necesita verificar en el momento en que necesita verificarla. Así que, como solución alternativa, creo una secuencia de comandos PHP simple para verificar que la dirección de correo electrónico tenga el formato correcto y también verifica que el nombre de dominio utilizado sea el correcto.

GitHub aquí https://github.com/DukeOfMarshall/PHP---JSON-Email-Verification/tree/master

<?php # What to do if the class is being called directly and not being included in a script via PHP # This allows the class/script to be called via other methods like JavaScript if(basename(__FILE__) == basename($_SERVER["SCRIPT_FILENAME"])){ $return_array = array(); if($_GET[''address_to_verify''] == '''' || !isset($_GET[''address_to_verify''])){ $return_array[''error''] = 1; $return_array[''message''] = ''No email address was submitted for verification''; $return_array[''domain_verified''] = 0; $return_array[''format_verified''] = 0; }else{ $verify = new EmailVerify(); if($verify->verify_formatting($_GET[''address_to_verify''])){ $return_array[''format_verified''] = 1; if($verify->verify_domain($_GET[''address_to_verify''])){ $return_array[''error''] = 0; $return_array[''domain_verified''] = 1; $return_array[''message''] = ''Formatting and domain have been verified''; }else{ $return_array[''error''] = 1; $return_array[''domain_verified''] = 0; $return_array[''message''] = ''Formatting was verified, but verification of the domain has failed''; } }else{ $return_array[''error''] = 1; $return_array[''domain_verified''] = 0; $return_array[''format_verified''] = 0; $return_array[''message''] = ''Email was not formatted correctly''; } } echo json_encode($return_array); exit(); } class EmailVerify { public function __construct(){ } public function verify_domain($address_to_verify){ // an optional sender $record = ''MX''; list($user, $domain) = explode(''@'', $address_to_verify); return checkdnsrr($domain, $record); } public function verify_formatting($address_to_verify){ if(strstr($address_to_verify, "@") == FALSE){ return false; }else{ list($user, $domain) = explode(''@'', $address_to_verify); if(strstr($domain, ''.'') == FALSE){ return false; }else{ return true; } } } } ?>



No puede verificar si realmente existe un correo electrónico sin enviar un correo electrónico a esa cuenta. Pero puedes verificar que al menos esté formateado como uno

if(filter_var($email, FILTER_VALIDATE_EMAIL)) { //Email is valid }

Puede agregar otro cheque si lo desea. Analice el dominio y luego ejecute checkdnsrr

if(checkdnsrr($domain)) { // Domain at least has an MX record, necessary to receive email }

Como la gente sigue bajando esto, aquí hay algunas notas para que considere si está obligado y determinado a validar el correo electrónico:

  1. Los spammers también hacen el truco de conexión, así que no suponga que todos los servidores responderán de la misma manera. Uno de los otros enlaces de respuestas a esta biblioteca que tiene esta advertencia

    Algunos servidores de correo rechazarán silenciosamente el mensaje de prueba, para evitar que los emisores de correo no deseado revisen los correos electrónicos de sus usuarios y filtren los correos electrónicos válidos, por lo que esta función podría no funcionar correctamente con todos los servidores de correo.

    Entonces, si hay una dirección no válida, es posible que no obtenga una respuesta de dirección no válida. La respuesta arriba votada no menciona esto.

  2. Listas de spam Sí, puede ser incluido en la lista negra al intentar hacer esto (recuerde que dije que los spammers también conocen estos trucos). Incluyen una lista negra por dirección IP y si su servidor realiza conexiones de verificación constantemente, corre el riesgo de terminar en Spamhaus u otra lista de bloqueo. Si te ponen en la lista negra, ¿de qué te sirve validar la dirección de correo electrónico?

  3. Si realmente es tan importante verificar una dirección de correo electrónico, la forma aceptada es forzar al usuario a responder a un correo electrónico. Envíales un correo electrónico completo con un enlace que deben hacer clic para verificarlo. No es spam, y aún puede verificar si es válido.