Vamos saltar diretamente para a resposta curta e cuidar da explicação de longo prazo depois.
Muito simples – não.
Posso ouvir os desenvolvedores e os defensores do diabo lá fora questionando nossa negação grosseira da validação do e-mail regex, suscitando a pergunta adicional, então, de por que ele existe.
Bem, não vamos negar que pode ser uma ferramenta útil, e certamente é um kit inteligente para evitar que os usuários adicionem qualquer texto antigo em um formulário ou outro meio executável. Em certo momento, o e-mail regex teve seu papel a desempenhar na forma como coletamos dados de e-mail.
Mas agora? De acordo com a tecnologia e os padrões atuais?
Dizemos que já teve seu dia.
Se você quer garantir que está recebendo endereços de e-mail limpos que não vão mexer com seu e-mail marketing, suas taxas de retorno, resultados de entregabilidade e todas as coisas que você sabe que precisa para manter suas métricas altas e suas conversões em andamento, então o regex não é o caminho.
O que é regex de validação de e-mail?
Regex é a abreviação de expressão regular; é um termo usado em vários idiomas de codificação. Regex, ou expressões regulares, refere-se a cadeias de texto codificadas projetadas para corresponder a padrões encontrados em outras cadeias.
Eles podem ser bastante úteis quando um usuário precisa combinar uma seqüência de caracteres com um determinado tipo de padrão para verificar se as informações fornecidas parecem corretas. Considere números de telefone, códigos ZIP, datas e, sim, o grande que nos preocupa – endereços de e-mail.
Com um padrão simples, uma seqüência exata pode ser combinada com um conjunto de regras. Quando os padrões simples se tornam mais complicados, o regex se torna menos eficiente e com maior probabilidade de produzir maus resultados.
Parece bom até agora, qual é o problema com a validação de e-mails regex?
Por melhor que seja uma ferramenta como a regex, ela não cobre os cheques de que você precisa. Dê uma olhada neles:
[email protected]
[email protected]
[email protected]
[email protected]
Digamos que você identifique qualquer um dos itens acima como adições à sua lista de e-mails; você os sinalizaria imediatamente (ou você deveria!). Você não acreditaria que qualquer uma delas fosse uma entrada válida de pessoas reais mostrando interesse em seu produto e serviço.
A validação por e-mail Regex, no entanto, seria. Deixaria passar todos eles.
Por quê? Porque aqueles endereços obviamente falsos ainda seguem os padrões que suas regras estabelecem para confirmar.
Não está parecendo tão inteligente agora, não é?
É muito restritivo
Apesar daqueles exemplos anteriores parecerem tão obviamente falsos para nós, alguns formatos de e-mail incluem muito mais caracteres especiais do que estamos acostumados a ver.
Em sua forma mais simples e endereço de e-mail, segue o seguinte formato:
username@domain
Os endereços de e-mail são construídos em três seções:
- A parte local – tipicamente um nome de usuário ou função de trabalho
- O @ personagem
- O domínio, incluindo um TLD válido (Top Level Domain)
Se isso era tudo o que o código tinha que procurar, então uma típica verificação javascript regex evitaria que muitos contatos ruins terminassem em nossas listas.
Tipicamente, nossos endereços de e-mail podem incluir os seguintes caracteres:
- Dígitos: 0 a 9
- Letras minúsculas e maiúsculas: de a a z e de A a Z
- O caractere de ponto [:] Mas não como primeiro ou último caractere, ou usado consecutivamente
Se alguém se candidatasse à sua lista de e-mails com algum ou vários desses personagens especiais, a maioria de nós questionaria se algo estava errado, e estaríamos errados – todos eles são permitidos nos termos da convenção atual.
O Regex não verifica nada além da sintaxe
Os desenvolvedores podem estar preocupados apenas em obter endereços com aparência válida através de um formulário, mas nós não estamos. Precisamos saber:
- O domínio existe?
- Existe um registro MX para provar que o domínio tem um servidor de e-mail?
- O endereço de e-mail tem uma conta de e-mail funcional?
Qualquer uma dessas perguntas que marcar um “não” também receberá um difícil “não” de nós como marqueteiros. A Regex não verifica nada disso – somente uma ferramenta de validação de e-mail dedicada puxará para cima essas bandeiras vermelhas.
Não identifica endereços temporários e descartáveis
Como comerciantes de e-mail, outra coisa de que estamos mais do que cientes é que muitos usuários criam contas temporárias falsas para tirar proveito de uma oferta, promoção ou outra situação. É uma maneira fácil de evitar acrescentar confusão às suas contas de e-mail existentes ou dar qualquer informação sobre eles mesmos que não queiram.
É fácil configurar um endereço de e-mail temporário ou descartável como uma solução única. Esses endereços freqüentemente desaparecem dentro de 10 ou 15 minutos após serem configurados, tornando-os incrivelmente adequados ao propósito.
A Regex não verificará por esses. Os endereços eletrônicos temporários e descartáveis passam em todos os testes de validação regex.
Como você criaria um e-mail regex javascript?
Se você é um desenvolvedor dab-hand, provavelmente não precisará do nosso conhecimento básico do assunto para lhe dizer como, mas para aqueles que têm alguma experiência em codificação, deve ser algo parecido com isto:
função ValidateEmail(inputText)
{
var mailformat = [a-z0-9!#$%&’*+/=?^_`{|}~-]+(?:.[a-z0-9!#$%&’*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?
if(inputText.value.match(mailformat))
{
alerta(“Este não é um endereço de e-mail válido”);
retornar falso;
}
}
A parte que está fazendo todo o trabalho pesado é o var mailformat linha. A execução e os caracteres nessa longa linha de código definem o que é permitido e o que não é.
Você pode identificar as coisas simples: A , A , e depois os caracteres especiais na primeira seção, local. O +@ então dita o separador local e de domínio. Seguindo o @ temos então outra série de instruções sobre o que é permitido para a seção de domínio.
Se você quer uma visão muito mais profunda do que é necessário para implementar um validador regex, então vá para o abstrato. Eles têm um guia muito bom sobre exatamente o que é necessário e são especialistas quando se trata de todos os tipos de adições e inclusões de API.
Se vale a pena fazer um trabalho, vale a pena fazer bem, então valide suas listas da melhor maneira possível
Só há uma maneira de garantir que suas listas de e-mail estejam em condições especiais, que é usar uma ferramenta de validação de e-mail dedicada, como Bouncer .
A validação Regex poderia ser responsável por deixar endereços de e-mail falsos em suas listas de e-mail, assim como bloquear os válidos. Quando se trata de acrescentar um método de autenticação a seus formulários online ou métodos de coleta de dados, sugerimos outras formas mais robustas de validação.
Em última análise, executar suas listas de e-mail através de uma plataforma como a Bouncer é de longe a melhor maneira de manter suas listas limpas e saudáveis, suas taxas de retorno baixas, sua capacidade de entrega alta e sua pontuação do remetente em forma de ponta a ponta.
Perguntas frequentes sobre o Regex de mensagens de e-mail
O que é um regex simples para validação de e-mail?
Uma regex (expressão regular) simples para validação de e-mail é uma sequência de caracteres que define um padrão de pesquisa para endereços de e-mail. Ela pode ser usada para verificar se uma cadeia de caracteres corresponde ao formato padrão de um endereço de e-mail. No entanto, é importante observar que uma regex simples pode não capturar todos os endereços de e-mail inválidos e pode permitir a passagem de alguns formatos de e-mail não padrão.
Como o regex de e-mail ajuda a filtrar endereços de e-mail inválidos?
O regex de e-mail é usado para comparar a string de entrada (o endereço de e-mail inserido por um usuário) com um formato específico. Se o endereço de e-mail não corresponder a esse formato, ele será considerado inválido. Isso pode ajudar a evitar erros de digitação, garantir a consistência dos dados e proteger contra determinados tipos de ataques de injeção.
O que é um caractere de espaço em branco no contexto do regex de e-mail?
Um caractere de espaço em branco no regex de e-mail refere-se a qualquer caractere usado para representar espaços em branco, como espaços, tabulações ou quebras de linha. No contexto de endereços de e-mail, os caracteres de espaço em branco normalmente não são permitidos e sua presença tornaria um endereço de e-mail inválido.
O que é um regex de e-mail complexo?
Uma regex de e-mail complexa é uma expressão regular mais detalhada e precisa usada para validação de e-mail. Ela pode levar em conta vários aspectos dos endereços de e-mail, como nomes de domínio, caracteres não latinos e regras específicas sobre onde determinados caracteres podem aparecer. Embora forneça uma validação mais completa, também pode ser mais difícil de implementar e manter.
Como o regex de e-mail lida com caracteres não latinos e Unicode?
A manipulação de caracteres não latinos e Unicode em regex de e-mail pode ser complexa. Alguns sistemas de e-mail permitem endereços de e-mail Unicode ou não latinos, mas eles não são universalmente suportados. Um regex de e-mail complexo pode incluir classes de caracteres para corresponder a caracteres não latinos, mas é essencial entender os requisitos e as restrições específicas do sistema de e-mail com o qual você está trabalhando.
Qual é a função das classes de caracteres na regex de e-mail?
As classes de caracteres em regex de e-mail definem um conjunto de caracteres que podem corresponder a qualquer caractere individual na string de entrada. Por exemplo, a classe de caracteres [a-z] corresponde a qualquer letra minúscula em inglês. As classes de caracteres podem ser usadas para especificar caracteres válidos para diferentes partes de um endereço de e-mail.
Quais são as limitações do regex de e-mail para validação de e-mail?
Embora o regex de e-mail possa detectar muitos erros comuns em endereços de e-mail, ele não é um método de validação completo. Alguns endereços inválidos ainda podem ser aprovados em uma verificação de regex, e alguns endereços válidos podem falhar, especialmente se usarem formatos ou caracteres menos comuns. Para uma validação completa de e-mail, geralmente recomenda-se o uso de serviços de validação de e-mail ou o envio de um e-mail de confirmação para o endereço inserido.