Cómo verificar el dominio de una dirección de correo electrónico con PHP

Noviembre 2016


En una dirección de correo electrónico, hay dos partes:
usuario@dominio


La parte dominio define un conjunto de máquinas asociadas donde, generalmente, encontramos un servidor que permite enviar e-mails. En este dominio existen usuarios.

Por lo general, no es posible consultar a un servidor para saber si la dirección entera es válida y existe. Sin embargo, podemos consultar a un servidor DNS para saber si el dominio de la dirección de correo electrónico existe.

Este tipo de verificación limita, al menos, un poco los daños cuando un usuario envía su correo electrónico.

PHP posee funciones para consultar a un servidor DNS. Una de estas tiene la ventaja de ser simple y suficiente para lo que se desea hacer: checkdnsrr(). Esta recibe como parámetro un nombre de dominio y retorna TRUE o FALSE (verdadero o falso) dependiendo de que el dominio exista o no.

Para verificar la validez del dominio de una dirección, se debe escribir en lenguaje PHP el siguiente código:

$domain = explode('@', $email);
if (checkdnsrr($domain[1]))
echo "Dominio de la dirección válida";


En Windows, esta solución funciona solo a partir de la versión 5.3.0 de PHP. Para versiones anteriores, hay que utilizar la biblioteca PEAR::Net_Dns.

Saber más

Verificar si el formato de la dirección de correo es válido.


Consulta también :
El documento «Cómo verificar el dominio de una dirección de correo electrónico con PHP» de CCM (es.ccm.net) se encuentra disponible bajo una licencia Creative Commons. Puedes copiarlo o modificarlo siempre y cuando respetes las condiciones de dicha licencia y des crédito a CCM.