Verificar se o formato de um endereço de e-mail é válido

Existem diversas 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. Nesse artigo, veremos diferentes formas de averiguar essa questão.

Utilizando um filtro

Uma das opções para verificar se um endereço de e-mail é válido é empregando um filtro de PHP como o filter_var(), que devolve os dados filtrados:

if(filter_var("yourEmailHere", FILTER_VALIDATE_EMAIL)) {
    // é válido
}
else {
    // não é válido
}

Utilizando expressões regulares

Utilizando expressões regulares, é possível verificar se um endereço de e-mail digitado, por exemplo, através de um formulário, é válido. A função a seguir verifica se uma string (cadeia de caracteres) está correta.

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

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 sinais de jogo da velha (#) são os delimitadores das expressões regulares enquanto o circunflexo (^) indica que a string deve começar com as informações que virão a seguir. Por fim, o cifrão ($) indica que a cadeia de caracteres deve ser finalizada com os dados que o precedem.

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

O que faz o código

  • ^[\w.-]+@: comece com o circunflexo (^) seguido por ao menos um caractere correspondente à classe abreviada ou um traço e depois um arroba (@).
  • [\w.-]+: um ou mais caracteres correspondentes à classe abreviada ou um traço. Esse é o nome do domínio.
  • \.[a-zA-Z]{2,6}$: um ponto e depois de duas a seis letras que encerram a cadeia. Esse é o tld do nome do domínio.

Foto: © Everypixel

Nosso conteúdo é produzido em colaboração com especialistas em tecnologia da informação sob o comando de Jean-François Pillou, fundador do CCM.net. CCM é um site sobre tecnologia líder em nível internacional e está disponível em 11 idiomas.
Veja também
Este documento, intitulado 'PHP - Verificar o formato 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.

Assine nossa newsletter!

Assine nossa newsletter!
Junte-se à comunidade