Faça uma pergunta »

PHP - Verificar o formato de um endereço de e-mail

Julho 2015

Existem várias maneiras de determinar se uma variável contém um endereço de e-mail válido. Estas técnicas não verificam se o endereço de e-mail existe, mas determinam se a cadeia contida em uma variável respeita o formato de um endereço de e-mail.

I) Utilizando um filtro


Utilizando uma função da família dos filtros, você pode verificar se o endereço de e-mail é válido.
Por exemplo filter_var()

Exemplo:
if(filter_var($email, FILTER_VALIDATE_EMAIL)){  
    //O e-mail está bom  
}

II) Graças às expressões regulares


Graças às expressões regulares, é possível verificar se um endereço de e-mail digitado, por exemplo, através de um formulário, é válido.

Veja uma função que verifica se uma string é apenas um e-mail válido.

function VerificarEndereçoEmail($endereço)  
{  
   $Syntaxe='#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,6}$#';  
   if(preg_match($Sintaxe,$endereço))  
      return true;  
   else  
     return false;  
}

Exemplo de uso


Depois de obter o campo "endereço" de um formulário:
$endereço=htmlentities($_POST['endereço']);  
if(VerificarEndereçodeEmail($endereço))  
  echo '<p>Seu endereço é válido.</p>';  
else  
  echo '<p>Seu endereço de e-mail \não é válido.</p>';

Explicações


Os sustenidos são os delimitadores da regex.
O símbolo ^ indica que a string deve começar com o que se segue, e o símbolo $ indica que ela deve acabar com o que precede.

\ W é uma classe abreviada que corresponde a A-Za-z0-9_., seja às 26 letras do alfabeto em letras maiúsculas ou minúsculas, os dez dígitos e um underscore (traço inferior).

O que faz o código


^[\w.-]+@ Comece (^) por, pelo menos, um caractere correspondente à classe abreviada, ou um traço, seguido por um @.

[\w.-]+ um ou mais caracteres correspondente(s) à classe abreviada ou um traço (é o nome do domínio)


\.[a-zA-Z]{2,6}$ um ponto, depois de 2 a 6 letras, queacabam a cadeia (é a tld do nome do domínio).



Tradução feita por Lucia Maurity y Nouira
Para uma leitura offline, é possível baixar gratuitamente este artigo no formato PDF:
Php-verificar-o-formato-de-um-endereco-de-e-mail.pdf

Veja também

Na mesma categoria

PHP - Checking the format of an email address
Por jak58 em 21 de dezembro de 2008
Verificar si el formato de una dirección de correo es valido
Por Carlos-vialfa em 28 de agosto de 2009
PHP - Vérifier le format d'une adresse mail
Por Jeff em 3 de novembro de 2004
Artigo original publicado por Jeff. Tradução feita por pintuda.
Este documento, intitulado « PHP - Verificar o formato de um endereço de e-mail »a partir de CCM (br.ccm.net) está disponibilizado sob a licença Creative Commons. Você pode copiar, modificar cópias desta página, nas condições estipuladas pela licença, como esta nota aparece claramente.