Validando emails com PHP

Validar emails é uma coisa essencial no universo WEB, seja para utilizá-lo em uma newsletter ou em um cadastro qualquer. A melhor forma de validar um email é utilizando os famosos “emails de confirmação“, porém como nem todo sistema necessita deste tipo de validação, apresento-lhes uma função simples de verificação de email, que verifica inclusive se o domínio do email informado possui um servidor de email respondendo.

Vamos ao código:

<?php

/*———————————————————–
*
* @nome: verificaEmail
*
* @descricao: Funcao para verificar se um email e valido
* retorna TRUE se o email for valido e FALSE se for invalido
*
* @autor: Angelito M. Goulart
*
* @data: 13/10/2011
*
*———————————————————–*/
function verificaEmail($email){

/* Verifica se o email e valido */
if (filter_var($email, FILTER_VALIDATE_EMAIL)){

/* Obtem o dominio do email */
list($usuario, $dominio) = explode(‘@’, $email);

/* Faz um verificacao de DNS no dominio */
if (checkdnsrr($dominio, ‘MX’) == 1){
return TRUE;
} else {
return FALSE;
}

} else {
return FALSE;
}
}

?>

Explicando:

Primeiro, recebemos o email. Verificamos se é um email válido através da função filter_var(). Passando por esta validação, dividimos o nome de usuário do domínio e então verificamos se o domínio do email possui um servidor de email respondendo. Fizemos esta verificação através da função checkdnsrr().

O resultado da função é que se o email realmente for válido, retorna TRUE, caso contrário, retorna FALSE. Lembrando que se desejar realizar uma validação mais completa, o jeito é utilizar um email de verificação, onde o sistema envia um email para o usuário com um token de verificação e o usuário então tem que  acessar uma página que faz a validação do token enviado

Você pode baixar a função AQUI.

Até a próxima 😉

1 pensou em “Validando emails com PHP

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.