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
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.