utildev
← Blog
Validadores5 min

Como validar e-mails corretamente

Por que validar e-mails é mais complexo do que parece, o que a RFC 5322 especifica, a diferença entre formato válido e endereço entregável, e como fazer na prática.

Validação de e-mail parece trivial: verificar se tem "@" e um domínio. Mas a RFC 5322 (o padrão que define e-mail) é surpreendentemente complexa — e a diferença entre um endereço com formato válido e um endereço que realmente recebe e-mails é enorme.

O que torna um e-mail válido pelo formato?

Um e-mail é composto pela parte local (antes do @) e o domínio (após o @). A parte local pode conter letras, números e vários caracteres especiais: !#$%&'*+/=?^_`{|}~.-. Pode até conter espaços e outros caracteres se estiver entre aspas. O domínio segue as regras de DNS.

  • "user@example.com" — válido
  • "user+tag@example.com" — válido (tags com +)
  • "user.name@sub.domain.com" — válido (subdomínios)
  • "user@[192.168.1.1]" — válido (IP literal)
  • "muito longo@example.com" — inválido se local > 64 chars
  • "@example.com" ou "user@" — inválidos
A regex "perfeita" para RFC 5322 tem mais de 6.000 caracteres. Na prática, use regex simples para UX e validação real (existência do endereço) via envio de e-mail de confirmação.

Formato válido vs endereço entregável

"abc@notareal.xyz" pode ter formato válido mas não existir. "user@gmail.com" pode existir mas a caixa pode estar cheia. Verificação real de entregabilidade exige: verificação de registro MX no DNS do domínio, e idealmente, um e-mail de confirmação (double opt-in).

Tags de e-mail (+) e normalização

O Gmail e muitos provedores suportam tags com "+": user+newsletter@gmail.com chega em user@gmail.com. Isso é útil para filtrar e-mails, mas alguns formulários erroneamente rejeitam o "+" como inválido — o que está incorreto. Ao normalizar endereços para deduplicação, remova a parte da tag e leve em conta que o Gmail também ignora pontos na parte local (u.ser == user).

Abordagem prática recomendada

  • Frontend: regex simples (/^[^\s@]+@[^\s@]+\.[^\s@]+$/) para feedback imediato de UX
  • Backend: validação mais rigorosa mas pragmática (verificar comprimentos, domínio com ponto)
  • Para cadastros: e-mail de confirmação (double opt-in) é a única verificação real
  • Para listas de e-mail: serviços de verificação de bounceability (ZeroBounce, NeverBounce)

Use o Validador de E-mail do UtilDev para verificar o formato de endereços conforme a RFC 5322, identificando erros comuns de sintaxe instantaneamente.

Ferramentas relacionadas

Validador de Email
Valide se um email possui formato correto