PHP - Verificar o domínio de um endereço de e-mail

Outubro 2017


Em um endereço de e-mail, existem duas partes:
usuário@domínio

A parte domínio define um conjunto de máquinas associadas onde, geralmente, encontramos um servidor que pode enviar e-mails. Neste domínio existem usuários. Em geral, não é possível consultar um servidor para saber se o endereço completo é válido e existe, mas você pode consultar um servidor DNS para ver se o domínio do endereço de e-mail existe realmente.
Este tipo de verificação limita, pelo menos um pouco, os danos quando um usuário te envia o endereço de e-mail dele.
PHP tem funções para interrogar um servidor DNS, há uma que tem a vantagem de ser simples e suficiente para o que queremos fazer:

checkdnsrr (). Ela toma como argumento um nome de domínio e retorna TRUE ou FALSE, dependendo se o domínio existe ou não.

Assim, para testar a vaidade do domínio de um endereço, basta fazer:
$domain = explode('@', $email); 
if (checkdnsrr($domain[1])) 
 echo "Domínio do endereço válido"; 


Veja aqui, então, uma verificação de validade de um endereço de e-mail que pode completar outra: Verificar o formato do endereço de e-mail.

NOTA: Esta solução não funciona caso a PHP esteja instalada no Windows. Neste caso, você deverá utilizar a biblioteca PEAR::Net_Dns

Boa sorte!


Tradução feita por Lucia Maurity y Nouira

Artigo original publicado por Carlos-vialfa. Tradução feita por pintuda. Última modificação: 19 de junho de 2011 às 16:30 por pintuda.
Este documento, intitulado 'PHP - Verificar o domínio de um endereço de e-mail', está disponível sob a licença Creative Commons. Você pode copiar e/ou modificar o conteúdo desta página com base nas condições estipuladas pela licença. Não se esqueça de creditar o CCM (br.ccm.net) ao utilizar este artigo.