técnico · resposta com fontes
Como verificar um endereço de e-mail sem enviar e-mail
Você pode verificar um endereço de e-mail sem enviar nenhum e-mail executando uma sequência de validação de sintaxe, consultas a registros DNS e handshakes do protocolo SMTP. Esse processo verifica se o formato do e-mail está correto e se o servidor receptor está configurado para aceitar e-mails para aquele domínio, sem de fato entregar uma mensagem.
Validação de sintaxe
O primeiro passo é verificar o endereço de e-mail em relação aos padrões da RFC 5322. Isso garante que o endereço tenha uma parte local, um símbolo de arroba e uma parte de domínio válida. Expressões regulares costumam ser usadas para detectar erros de digitação comuns, caracteres inválidos e formatação incorreta antes de qualquer requisição de rede.
Verificação de registros DNS
Depois de confirmar a sintaxe, você precisa verificar se o domínio tem registros Mail Exchanger (MX) válidos. Uma consulta DNS para o domínio deve retornar pelo menos um registro MX. Se não houver registros MX, o domínio não pode receber e-mails. Você pode usar recursos como as ferramentas gratuitas do SendHQ para checar as configurações de DNS e garantir que o domínio esteja ativo.
Processo de handshake SMTP
O método técnico de verificação consiste em iniciar uma conexão SMTP com o servidor MX. O cliente envia um comando HELO, seguido de MAIL FROM e RCPT TO. Se o servidor responder com 250 OK ao comando RCPT TO, o servidor considera o endereço válido. Em seguida, a conexão é encerrada com um comando QUIT antes do envio do comando DATA.
Como lidar com as restrições dos servidores
Muitos servidores de e-mail modernos usam configurações catch-all ou greylisting para impedir a verificação. Um servidor catch-all aceita todos os e-mails do domínio, independentemente da parte local. O greylisting rejeita temporariamente a primeira tentativa e exige que o remetente tente novamente mais tarde, o que pode complicar scripts de verificação em tempo real.
Considerações de implementação
Ao implementar essas verificações, garanta que o seu IP de envio tenha uma reputação limpa e um DNS reverso adequado. Handshakes SMTP frequentes sem envio de e-mail podem ser vistos como comportamento suspeito pelos servidores receptores, o que pode levar ao bloqueio ou ao throttling do seu IP por filtros de segurança.
Perguntas que as equipes fazem
Uma verificação SMTP garante a entrega?
Não, ela só confirma que o servidor aceitou o comando RCPT TO. Ela não garante que a mensagem vá passar pelos filtros de spam ou chegar à caixa de entrada.
O que é um endereço de e-mail catch-all?
Catch-all é uma configuração de servidor que aceita qualquer e-mail enviado ao domínio, mesmo que a parte local específica não exista.
Posso usar uma API comum para isso?
Sim. Muitos serviços de validação de e-mail automatizam a checagem de sintaxe, a consulta DNS e o handshake SMTP por meio de uma API REST.
Por que alguns servidores rejeitam verificações SMTP?
Os servidores podem rejeitar essas verificações para evitar ataques de directory harvest, em que bots tentam descobrir usuários válidos adivinhando endereços.
Fontes primárias
- RFC 5321: Simple Mail Transfer Protocol — RFC Editor (em inglês)
- RFC 5322: Internet Message Format — RFC Editor (em inglês)
- Service Name and Transport Protocol Port Number Registry — IANA (em inglês)