Alguns anos atrás, passei três dias depurando por que os e-mails transacionais de um cliente estavam caindo no spam. O conteúdo estava ok. SPF e DKIM estavam configurados corretamente. DMARC estava aprovando. Tudo parecia perfeito—até eu realmente ler os cabeçalhos brutos.
Escondido na mensagem havia um cabeçalho que dizia "X-Spam-Status: Yes, score=8.2". O próprio servidor de e-mail do cliente estava marcando as mensagens como spam antes mesmo de saírem do prédio. Um filtro de spam mal configurado estava adicionando esse cabeçalho, e servidores posteriores estavam confiando nele.
Os cabeçalhos de e-mail contam uma história. Eles registram cada servidor que tocou uma mensagem, cada verificação de autenticação que foi executada, cada pontuação de spam que foi calculada. Aprender a lê-los é como aprender a ler um prontuário médico—de repente você consegue diagnosticar problemas que pareciam misteriosos.
A anatomia dos cabeçalhos de e-mail
Os cabeçalhos de e-mail aparecem no topo de toda mensagem, embora a maioria dos clientes de e-mail os oculte por padrão. Eles são uma série de pares chave-valor, cada um em sua própria linha, registrando metadados sobre a mensagem e sua trajetória.
Os cabeçalhos são adicionados em ordem cronológica inversa. O cabeçalho mais recente está no topo; os cabeçalhos originais do remetente estão na parte inferior. Isso importa quando você está rastreando o caminho de uma mensagem—você lê de baixo para cima para seguir a jornada cronológica.
Alguns cabeçalhos são definidos pelo remetente: From, To, Subject, Date. Outros são adicionados por servidores ao longo do caminho: cabeçalhos Received de cada servidor de e-mail, resultados de autenticação, pontuações de spam. Entender quais cabeçalhos vêm de onde ajuda a interpretar o que você está vendo.
Cabeçalhos Received: rastreando o caminho
Todo servidor de e-mail que processa uma mensagem adiciona um cabeçalho Received. Eles criam um rastro de migalhas mostrando exatamente como a mensagem viajou do remetente ao destinatário.
Um cabeçalho Received típico inclui o servidor que recebeu a mensagem, o servidor de onde ela foi recebida, o protocolo usado e um carimbo de data/hora. Lendo esses cabeçalhos de baixo para cima, você vê a jornada completa.
Isso é inestimável para depuração. Se uma mensagem está atrasada, os cabeçalhos Received mostram onde ela ficou presa. Se está sendo rejeitada, você pode ver qual servidor a rejeitou. Se está sendo modificada em trânsito, você pode identificar qual servidor fez alterações.
Fique atento a padrões suspeitos. Uma mensagem afirmando ser de uma grande corporação, mas com cabeçalhos Received mostrando que se originou de um endereço IP residencial, é quase certamente fraudulenta. E-mail corporativo legítimo não sai da conexão de internet doméstica de alguém.
Authentication-Results: o veredito
O cabeçalho Authentication-Results é onde os servidores receptores registram o resultado das verificações de autenticação. Esse único cabeçalho informa se SPF, DKIM e DMARC passaram ou falharam e geralmente inclui detalhes sobre o motivo.
Um cabeçalho Authentication-Results típico pode mostrar SPF aprovando com o endereço IP que foi verificado, DKIM aprovando com o domínio que assinou a mensagem e DMARC aprovando com a política aplicada. Ou pode mostrar falhas, com códigos de motivo explicando o que deu errado.
Ao depurar entregabilidade, esse geralmente é o primeiro cabeçalho a verificar. Se a autenticação está falhando, o motivo geralmente está bem aqui. "SPF softfail" indica que seu registro SPF não está exatamente certo. "DKIM signature verification failed" sugere que a mensagem foi modificada em trânsito ou a assinatura está malformada.
Servidores receptores diferentes formatam esse cabeçalho de forma ligeiramente distinta, mas a informação é similar. Gmail, Microsoft, Yahoo—todos registram resultados de autenticação, apenas com pequenas variações na sintaxe.
DKIM-Signature: a prova criptográfica
O cabeçalho DKIM-Signature contém a assinatura criptográfica que prova que uma mensagem não foi adulterada desde que saiu do servidor de assinatura. É complexo à primeira vista, mas segue uma estrutura consistente.
O cabeçalho especifica qual algoritmo foi usado, qual domínio assinou a mensagem, qual seletor usar para a busca da chave pública, quais cabeçalhos estão cobertos pela assinatura, um hash do corpo e a própria assinatura.
Para depuração, as partes mais úteis são o domínio (d=) e o seletor (s=). Eles dizem onde procurar a chave pública. Se o DKIM está falhando, você pode verificar manualmente se o registro DNS existe e contém uma chave válida.
Os cabeçalhos cobertos pela assinatura (h=) também importam. Se um cabeçalho listado ali foi modificado em trânsito, a assinatura quebra. Culpados comuns incluem linhas de Subject modificadas por listas de e-mails ou cabeçalhos From reescritos por serviços de encaminhamento.
Cabeçalhos X-Spam: os sinais de reputação
Muitos servidores de e-mail adicionam cabeçalhos indicando sua avaliação de spam. Eles não são padronizados—servidores diferentes usam nomes e formatos de cabeçalho distintos—mas são incrivelmente úteis para entender por que mensagens estão sendo filtradas.
O SpamAssassin, um dos filtros de spam mais comuns, adiciona os cabeçalhos X-Spam-Status e X-Spam-Score. O status mostra se a mensagem foi classificada como spam, e a pontuação mostra a avaliação numérica. Pontuações mais altas significam mais características de spam.
X-Spam-Flag é um indicador simples de sim/não. X-Spam-Report frequentemente contém um detalhamento detalhado de quais regras dispararam e quantos pontos cada uma contribuiu. Esse detalhamento é ouro para depuração—ele diz exatamente do que o filtro não gostou.
Se você está vendo problemas de classificação como spam, procure esses cabeçalhos. Eles frequentemente revelam questões específicas: "MISSING_DATE" significa que você esqueceu o cabeçalho Date, "HTML_IMAGE_ONLY" significa que sua mensagem é apenas imagens sem texto, "RCVD_IN_BRBL" significa que seu IP de envio está em uma lista negra.
List-Unsubscribe: o cabeçalho de conformidade
O cabeçalho List-Unsubscribe não trata de segurança no sentido tradicional, mas é crucial para entregabilidade e conformidade. Ele informa aos clientes de e-mail como os destinatários podem cancelar a assinatura de suas mensagens.
Os clientes de e-mail modernos—Gmail, Apple Mail, Outlook—exibem um link de cancelamento de assinatura de forma destacada quando esse cabeçalho está presente. Isso é bom para os destinatários e bom para você: cancelamento fácil significa menos reclamações de spam, o que significa melhor entregabilidade.
O cabeçalho pode conter um link mailto, uma URL HTTPS ou ambos. A boa prática é incluir ambos, dando opções aos clientes de e-mail. O cabeçalho mais novo List-Unsubscribe-Post permite o cancelamento de assinatura com um clique sem exigir que o usuário visite uma página da web ou envie um e-mail.
Para e-mails de marketing e em massa, esse cabeçalho é essencialmente obrigatório. O Gmail e outros provedores penalizam mensagens sem ele. Para e-mails transacionais, é menos crítico, mas ainda é uma boa prática para quaisquer notificações recorrentes.
Message-ID: o identificador exclusivo
Todo e-mail deve ter um cabeçalho Message-ID único. Esse identificador permite que os sistemas de correio rastreiem mensagens, detectem duplicatas e organizem conversas corretamente.
Um Message-ID adequado se parece com uma cadeia aleatória seguida de @ e um nome de domínio. O domínio deve ser um que você controla—usar seu domínio de envio é prática padrão. A parte aleatória deve ser realmente única; UUIDs funcionam bem.
Message-IDs ausentes ou malformados causam problemas. Alguns filtros de spam sinalizam mensagens sem eles. A organização por conversas nos clientes de e-mail quebra. A detecção de duplicatas falha, potencialmente causando a entrega da mesma mensagem várias vezes.
Se você está construindo sistemas de envio de e-mails, gere Message-IDs apropriados. É um detalhe pequeno que evita problemas irritantes no futuro.
Reply-To vs From: o roteamento de respostas
O cabeçalho From mostra quem enviou a mensagem. O cabeçalho Reply-To, quando presente, informa aos clientes de e-mail para onde enviar respostas. Eles podem ser diferentes, e entender quando usar Reply-To é importante.
Um padrão comum: e-mails de marketing vêm de [email protected], mas têm Reply-To definido como [email protected]. Isso permite enviar a partir de um endereço de marketing dedicado enquanto encaminha respostas para sua equipe de suporte.
Tenha cuidado com o Reply-To. Alguns filtros de spam veem endereços From e Reply-To divergentes com desconfiança, especialmente se os domínios forem diferentes. É uma técnica usada por fraudadores para fazer e-mails fraudulentos parecerem legítimos enquanto capturam respostas.
Para e-mails transacionais, manter From e Reply-To iguais (ou omitir Reply-To completamente) geralmente é o melhor. Para e-mails de marketing, usar Reply-To para encaminhar respostas para uma caixa monitorada faz sentido.
Lendo cabeçalhos na prática
Quando você está depurando um problema de e-mail, aqui está uma abordagem sistemática para ler cabeçalhos.
Comece com Authentication-Results. SPF, DKIM e DMARC passaram? Se não, você provavelmente encontrou seu problema. Os detalhes nesse cabeçalho geralmente explicam o que deu errado.
Em seguida, verifique os cabeçalhos Received. Rastreie o caminho da mensagem de baixo para cima. Procure por servidores inesperados, longos atrasos entre saltos ou servidores que possam ter modificado a mensagem.
Procure cabeçalhos relacionados a spam. X-Spam-Status, X-Spam-Score, X-Spam-Flag—qualquer um desses pode revelar por que uma mensagem foi filtrada. Os relatórios detalhados geralmente apontam problemas específicos e corrigíveis.
Por fim, verifique o básico. Há um Message-ID válido? O cabeçalho Date está presente e razoável? From está definido corretamente? Cabeçalhos básicos ausentes ou malformados acionam filtros de spam.
Frequently asked questions
Como vejo os cabeçalhos de e-mail?
No Gmail, abra a mensagem e clique no menu de três pontos e depois em 'Mostrar original'. No Outlook, abra a mensagem, clique em Arquivo e depois em Propriedades. A maioria dos clientes de e-mail tem uma opção semelhante de 'ver origem' ou 'mostrar cabeçalhos'.
Cabeçalhos de e-mail podem ser forjados?
Cabeçalhos definidos pelo remetente (From, Subject etc.) podem ser forjados. Cabeçalhos adicionados por servidores receptores (Received, Authentication-Results) são mais difíceis de forjar porque são adicionados depois que a mensagem chega. É por isso que os resultados de autenticação do servidor receptor são confiáveis.
Por que vejo vários cabeçalhos Authentication-Results?
Cada servidor que realiza verificações de autenticação pode adicionar seu próprio cabeçalho. Você pode ver um do servidor de entrada do seu provedor de e-mail e outro de um filtro de spam interno. O mais relevante geralmente é o do servidor receptor final.
Qual é a diferença entre Return-Path e From?
From é o endereço exibido aos destinatários. Return-Path (também chamado de remetente do envelope) é para onde são enviados os retornos de entrega (bounces). Eles frequentemente são iguais, mas podem diferir. SPF verifica o domínio do Return-Path, não o domínio do From—é por isso que o DMARC existe, para alinhá-los.