¿el email existe?

Iniciado por OssoH, 9 Agosto 2016, 10:21 AM

0 Miembros y 1 Visitante están viendo este tema.

OssoH

Hola :
Quisiera saber en PHP como se comprueba si un email existe.
He visto una página https://tools.verifyemailaddress.io/ donde introduces un email y te indica si el correo es inventado. Yo busco esto exactamente para evitar que la gente se invente los correos en un programa de registros que estoy implementando.


Buscando por internet me encontre esto, pero unicamente valida si es un formato de correo.

public function validar_existe_dominio_email($email){
return (bool)filter_var($email, FILTER_VALIDATE_EMAIL);
}


También he encontrado que valide que el dominio exista, es decir, no se hayan inventado el dominio.


public function validar_existe_dominio_email($email){
$exp = "^[a-z'0-9]+([._-][a-z'0-9]+)*@([a-z0-9]+([._-][a-z0-9]+))+$";
if(eregi($exp,$email)){
 if(checkdnsrr(array_pop(explode("@",$email)),"MX")){
 return true;
 } else {
   return false;
 }
} else {
    return false;
}
}



Ahora mismo me encuentro probando este a ver que tal
https://github.com/zytzagoo/smtp-validate-email
EDITO : Parece que las direcciones de gmail con ese enlace si detecta las que existen o no, pero en HOTMAIL.COM NO funciona. :(

alguna sugerencia?

Gracias.


[u]nsigned

El código que pusiste solo verifica si es un formato valido, pero no si es un email real. Creo que la única forma de verificar eso es enviarle un email y ver si responde con "Delivery Status Notification (Failure)", lo que significa que no existe.

Claro que esto es una locura, si te fijas el servicio http://verify-email.org/using-api.html tiene una API Rest con la que puedes consultar si un email existe. Tiene restricciones en su vision free, pero eso se soluciona creando varias cuentas xD



No hay atajo ante la duda, el misterio se hace aquí...
Se hace carne en cada uno, el misterio es existir!

+ 1 Oculto(s)

[quote author=nsigned link=topic=456227.msg2082649#msg2082649 date=1470748589]
El código que pusiste solo verifica si es un formato valido, pero no si es un email real. Creo que la única forma de verificar eso es enviarle un email y ver si responde con "Delivery Status Notification (Failure)", lo que significa que no existe.

Claro que esto es una locura, si te fijas el servicio http://verify-email.org/using-api.html tiene una API Rest con la que puedes consultar si un email existe. Tiene restricciones en su vision free, pero eso se soluciona creando varias cuentas xD



[/quote]

si no me equivoco aveces tarda dias en llegar ese mensaje "Delivery Status Notification (Failure)", cuando los servidores lo apagan de una institucion la cual tienen correos propios, en ese caso tambien llegaria el mensaje "Delivery Status Notification (Failure)", sin embargo ese correo existe solo que los servidores estan apagados... no se si me deje entender, claro seria una solucion pero con algunos defectos...


slds...

[u]nsigned

Por eso lo mejor es usar algún servicio con API Rest como el que puse en mi anterior comentario ;)

No hay atajo ante la duda, el misterio se hace aquí...
Se hace carne en cada uno, el misterio es existir!

OssoH

Muchas gracias por vuestros consejos.
Voy a revisarlos.

+ 1 Oculto(s)

tuve este mismo problema hace tiempo y no sabia lo de esa api... lo probare  la proxima ves ejjeejej... ;-) :silbar: