Vamos saltar diretamente para a resposta curta e cuidar da explicação de longo prazo depois.

Muito simples - não.

Consigo ouvir os desenvolvedores e os demônios defensores lá fora questionando nossa negação grosseira da regex validação de e-mailLevando à pergunta adicional, então, de por que ela 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 as normas 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:

[email protected]

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
  • Caracteres especiais adicionais: !#$%&'*+-/=?^_``{|}~
  • 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 dab-hand desenvolvedorSe você não tem experiência em codificação, 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-z, A-Z, 0-9e depois os caracteres especiais na primeira seção, local. O [email protected] 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 API adições e inclusões.

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 Bouncer é de longe a melhor maneira de manter suas listas limpas e saudáveis, suas taxas de ressalto baixas, sua capacidade de entrega elevada e sua pontuação do remetente em forma de ponta.

Ir para a verificação aprofundada do e-mail, ir para Bouncer