Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: OssoH en 9 Agosto 2016, 10:21 am



Título: ¿el email existe?
Publicado por: OssoH en 9 Agosto 2016, 10:21 am
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.
Código:
	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.

Código:
	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.



Título: Re: ¿el email existe?
Publicado por: [u]nsigned en 9 Agosto 2016, 15:16 pm
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




Título: Re: ¿el email existe?
Publicado por: + 1 Oculto(s) en 9 Agosto 2016, 15:35 pm
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




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...


Título: Re: ¿el email existe?
Publicado por: [u]nsigned en 9 Agosto 2016, 15:37 pm
Por eso lo mejor es usar algún servicio con API Rest como el que puse en mi anterior comentario ;)


Título: Re: ¿el email existe?
Publicado por: OssoH en 9 Agosto 2016, 15:45 pm
Muchas gracias por vuestros consejos.
Voy a revisarlos.


Título: Re: ¿el email existe?
Publicado por: + 1 Oculto(s) en 9 Agosto 2016, 15:46 pm
tuve este mismo problema hace tiempo y no sabia lo de esa api... lo probare  la proxima ves ejjeejej... ;-) :silbar: