Função em PHP para validar e-mails

Sempre que precisamos validar endereços de e-mail em formulários de cadastro, temos a preocupação com o formato. Geralmente verificamos apenas se o endereço possui uma arroba, um ponto, e caso o endereço passe por este teste, consideramos correto.

Porém nem sempre este teste primitivo é suficiente. Seria ótimo poder verificar, por exemplo, se o domínio que foi digitado é válido, ou se o usuário (o que vem antes da arroba) está corretamente formatado.

Para resolver este problema, criei uma função simples, que verifica se o e-mail está corretamente formatado, e se estiver, verifica se o domínio é válido e se ele possui um registro MX em seus dados de DNS (próprio para o recebimento de e-mails).

Eis o código:

function VerificarEmailValido($email) {
  if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
    list($alias, $domain) = explode("@", $email);
    if (checkdnsrr($domain, "MX")) {
      return true;
    } else {
      return false;
    }
  } else {
    return false;
  }
}

A função retorna true se o e-mail for válido, ou false se for inválido.

Por Daniel Ribeiro

Daniel Ribeiro é um Nerd apaixonado por motos e velocidade. Escreve o Motos Blog, o maior blog sobre Motos do Brasil. Mas como todo Nerd, gosta de acumular conhecimentos profundos sobre todas as áreas que puder. Com isso, acaba tendo interesse em outras áreas, como Aviação, Eletrônica, Mercado Financeiro, entre outros. Então, usa o Outros.net para postar tudo aquilo que não cabe no Motos Blog.