Como verificar se um domínio (e-mail) é válido

Postado por: Flávio Rodrigues em

Pra não perder o ritmo, vou postar mais um texto que acho que deve ser de interesse de todos. Muitas vezes apenas as expressões regulares não são o suficiente para que seu usuário envie um e-mail correto para você.

Imagine o constrangimento de uma grande empresa receber um e-mail pelo Fale Conosco e na hora de responder ao e-mail, o usuário digitou um e-mail inválido e você não possui outra forma de entrar em contato com ele.

Para evitar esse tipo de constrangimento, lhes apresento a função VerifyEmailAddress, ela é simples e utiliza a função checkdnsrr.

function VerifyEmailAddress($EMail) {
    list($User, $Domain) = explode("@", $EMail);
    $Result = checkdnsrr($Domain, 'MX');
    return($Result);
}

O que ela faz: primeiro separa o domínio do e-mail, depois faz uma verificação de DNS retornando 1 para DNS válido e 0 para DNS inválido.

Ou seja, se o domínio existir, é bem provável que o e-mail também exista. Mas não se iluda achando que essa será sua única e melhor solução!

Agora apenas uma apresentação de erro:

if(VerifyEmailAddress($email) != 1) {
    echo "Por favor, preencha um e-mail válido.";
}

É isso pessoal, até a próxima!

Posts Relacionados

Confira também outros artigos interessantes postados aqui no blog.

Sobre Flávio Rodrigues

Flávio Rodrigues é programador pleno, tecnólogo em Sistemas de Informação pelo Curso e Colégio Nova Era em Joinville - SC

8 Responses to “Como verificar se um domínio (e-mail) é válido”

  1. Será que isto é confiavel? Vai que o DNS esta fora do ar no momento?! :S

  2. Não se esqueçam do bom e velho

    http://de.php.net/filter_var

    também.

  3. Pow, legal
    Não conhecia isso.
    Também não conheco o filter_var =D

    Eu estava atraz disto já tinha um tempo
    Falta só algo como isso pra um script de validação de formulário que eu estou fazendo.

    Obrigado =D

  4. Olá, seria muito complicado implantar isso no wordpress?

Leave a Reply