DKIM fail: todas as causas e como corrigir
Por CaptainDNS
Publicado em 19 de fevereiro de 2026

- Um resultado
dkim=failsignifica que a assinatura DKIM do email não pôde ser verificada pelo servidor de recebimento - As 3 causas mais frequentes: body hash alterado (conteúdo modificado), chave pública não encontrada no DNS, assinatura expirada (prazo
x=ultrapassado) - O encaminhamento de email quase sempre invalida a assinatura DKIM, é um comportamento esperado que apenas o ARC pode compensar
- Use o comando
dig TXT seletor._domainkey.captaindns.compara verificar se sua chave pública está publicada corretamente - Sempre combine DKIM com DMARC e SPF para uma autenticação completa
Você abre os cabeçalhos de um email e encontra dkim=fail. A mensagem foi enviada corretamente, sua configuração parecia estar certa, mas a verificação DKIM falha. Esse cenário é frequente e as causas são múltiplas.
Este guia analisa cada causa de uma falha DKIM, explica como diagnosticá-la e apresenta a correção precisa a aplicar. Seja o problema no DNS, na assinatura, no encaminhamento ou no alinhamento DMARC, você saberá exatamente o que corrigir.
Como ler um resultado DKIM nos cabeçalhos de email?
Cada email recebido contém um cabeçalho Authentication-Results adicionado pelo servidor de recebimento. É nele que você encontra o veredito DKIM.
Os vereditos possíveis
| Veredito | Significado |
|---|---|
dkim=pass | Assinatura verificada com sucesso |
dkim=fail | A assinatura existe, mas a verificação falhou |
dkim=none | Nenhuma assinatura DKIM encontrada na mensagem |
dkim=neutral | Assinatura presente, mas o verificador não conseguiu concluir |
dkim=temperror | Erro temporário (timeout DNS, servidor indisponível) |
dkim=permerror | Erro permanente (sintaxe DNS inválida, chave malformada) |
Exemplo de cabeçalho com falha
Authentication-Results: mx.google.com;
dkim=fail (body hash did not verify) header.d=captaindns.com header.s=google header.b=abc12345;
spf=pass smtp.mailfrom=captaindns.com;
dmarc=fail
O texto entre parênteses (body hash did not verify) indica a razão precisa da falha. Esse é seu ponto de partida para o diagnóstico.
As 7 causas de uma falha DKIM

Causa 1: body hash não verificado
Mensagem: body hash did not verify
Este é o erro mais comum. O servidor de envio calcula um hash do conteúdo do email e o inclui na assinatura (tag bh=). O servidor de recebimento recalcula esse hash. Se os dois não coincidem, ocorre uma falha.
Causas frequentes:
- Um relay intermediário modificou o conteúdo (adição de rodapé, reescrita de URL, antivírus)
- O servidor de mailing adiciona um pixel de rastreamento após a assinatura
- Um proxy de email ou DLP (Data Loss Prevention) altera o corpo da mensagem
Diagnóstico:
# Verificar se o registro DKIM está publicado corretamente
dig TXT google._domainkey.captaindns.com +short
Correção: identifique o serviço que modifica o conteúdo após a assinatura. Configure-o para agir antes da assinatura DKIM, ou exclua as modificações do corpo assinado.
Causa 2: chave pública não encontrada
Mensagem: key not found ou no key for signature
O servidor de recebimento não encontra o registro DNS seletor._domainkey.dominio. Sem chave pública, é impossível verificar a assinatura.
Causas frequentes:
- O seletor declarado na assinatura (
s=) não corresponde a nenhum registro DNS - O registro foi excluído por engano
- O CNAME para o provedor (Google, Microsoft) não está configurado
- A propagação DNS ainda não foi concluída
Diagnóstico:
# Substitua "seletor" pelo valor do campo s= da assinatura
dig TXT seletor._domainkey.captaindns.com +short
Se o comando não retornar nada, o registro está ausente.
Correção: publique (ou republique) o registro DNS TXT ou CNAME correspondente ao seletor. Aguarde a propagação DNS (até 48h dependendo do TTL).
Causa 3: assinatura expirada
Mensagem: signature expired
A tag x= da assinatura DKIM define um timestamp de expiração. Se o servidor de recebimento verificar a assinatura após essa data, ocorre uma falha.
Causas frequentes:
- O email ficou na fila por tempo demais (greylisting, servidor de recebimento lento)
- O valor
x=é muito curto (ex: 1 hora em vez de 7 dias) - Diferença de relógio entre os servidores
Correção: aumente a duração de validade da assinatura. A maioria dos provedores utiliza 7 dias. Se você controla o servidor de envio, verifique se x= deixa um prazo suficiente (mínimo de 72 horas recomendado).
Causa 4: erro de canonicalização
Mensagem: bad signature ou signature verification failed
A canonicalização define como o servidor normaliza a mensagem antes de verificar a assinatura. Existem dois modos: simple e relaxed. Se o cabeçalho DKIM declara c=simple/simple, mas um relay modifica espaços ou a capitalização dos cabeçalhos, a verificação falha.
Diagnóstico: na assinatura DKIM, procure a tag c=. Se o valor for simple/simple, essa é provavelmente a causa.
Correção: mude para c=relaxed/relaxed. Esse modo tolera modificações menores (espaços, capitalização) que os relays de email realizam com frequência.
Causa 5: chave curta demais
Mensagem: key too short ou insecure key
Desde 2024, Google e Yahoo recusam chaves RSA de 512 e 768 bits. O tamanho mínimo aceito é 1024 bits, e 2048 bits é o recomendado.
Diagnóstico:
# Recuperar a chave e verificar seu tamanho
dig TXT google._domainkey.captaindns.com +short
# Copiar o valor p= e decodificar em Base64 para contar os bits
Correção: gere um novo par de chaves RSA 2048 bits (ou Ed25519) e publique a nova chave pública no DNS. Atualize a configuração do seu servidor de envio com a nova chave privada.
Causa 6: encaminhamento de email (forwarding)
O encaminhamento de email é a causa mais difícil de resolver. Quando um servidor intermediário retransmite uma mensagem, ele pode modificar o conteúdo (adição de cabeçalhos, reescrita do endereço de retorno). A assinatura DKIM original fica então inválida.
Casos típicos:
- Encaminhamento automático do Gmail/Outlook para outra caixa de correio
- Listas de distribuição (mailing lists) que adicionam um rodapé
- Aliases de email que redirecionam para outro domínio
Correção: não existe solução universal. O protocolo ARC (Authenticated Received Chain, RFC 8617) foi criado para esse caso: cada servidor intermediário adiciona sua própria assinatura ARC, formando uma cadeia de confiança. Gmail e Microsoft suportam ARC. Do lado do remetente, você não pode impedir a quebra da assinatura durante o encaminhamento.
Causa 7: falha de alinhamento DMARC
Mensagem: dmarc=fail (enquanto dkim=pass)
Este caso é particular. A assinatura DKIM é tecnicamente válida (dkim=pass), mas DMARC falha porque o domínio d= da assinatura não corresponde ao domínio do From:. É um problema de alinhamento, não de assinatura.

Exemplo:
From: contact@captaindns.com- Assinatura DKIM:
d=sendgrid.net(o provedor assina com seu próprio domínio)
DKIM passa, mas o alinhamento falha pois sendgrid.net ≠ captaindns.com.
Correção: configure seu provedor de envio para assinar com o seu domínio (d=captaindns.com). Na maioria dos provedores (SendGrid, Mailchimp, Brevo), isso é feito criando um CNAME seletor._domainkey.captaindns.com apontando para a infraestrutura deles.
Diagnóstico rápido: tabela resumo
| Sintoma | Causa provável | Verificação | Correção |
|---|---|---|---|
body hash did not verify | Conteúdo modificado após assinatura | Identificar o relay que modifica | Assinar após as modificações |
key not found | Registro DNS ausente | dig TXT s._domainkey.dominio | Publicar o registro |
signature expired | Prazo x= ultrapassado | Comparar x= com a hora da verificação | Aumentar a duração |
bad signature | Canonicalização muito estrita | Verificar c= na assinatura | Mudar para relaxed/relaxed |
key too short | Chave RSA <1024 bits | Decodificar a chave pública | Regenerar em 2048 bits |
dkim=pass + dmarc=fail | Alinhamento de domínio | Comparar d= e From: | Assinar com seu domínio |
Diferença entre dkim=fail, dkim=none e dkim=temperror
Esses três vereditos indicam situações muito diferentes.
dkim=fail: uma assinatura DKIM existe na mensagem, mas sua verificação falhou. É um problema ativo a ser corrigido.
dkim=none: nenhuma assinatura DKIM está presente na mensagem. O servidor de envio não assina os emails. Configure DKIM no seu servidor ou no seu provedor.
dkim=temperror: o servidor de recebimento não conseguiu verificar a assinatura devido a um erro temporário (timeout DNS, servidor sobrecarregado). A verificação será tentada novamente. Se o problema persistir, verifique se seus servidores DNS respondem rapidamente (TTL baixo, sem SERVFAIL).
Plano de ação recomendado
- Identifique o veredito exato: abra os cabeçalhos do email e anote o texto entre parênteses após
dkim=fail - Verifique seu registro DNS: faça uma análise com o verificador DKIM para confirmar que a chave pública está publicada e sintaticamente válida
- Identifique seus seletores ativos: use o DKIM Selector Finder para escanear os seletores conhecidos no seu domínio
- Corrija a causa identificada: aplique a correção correspondente ao seu caso (veja a tabela acima)
- Monitore os resultados: após a correção, envie emails de teste e verifique se
dkim=passaparece nos cabeçalhos
FAQ
O que significa dkim=fail nos cabeçalhos de email?
O veredito dkim=fail indica que a mensagem contém uma assinatura DKIM, mas o servidor de recebimento não conseguiu verificá-la. O texto entre parênteses (ex: body hash did not verify) especifica a razão da falha. Isso não significa necessariamente que o email é fraudulento, uma modificação legítima do conteúdo em trânsito também pode causar essa falha.
Por que meu DKIM falha mesmo com o registro DNS correto?
Se seu registro DNS é válido mas o DKIM falha, o problema provavelmente vem do conteúdo da mensagem. Um relay intermediário (antivírus, DLP, proxy) pode ter modificado o corpo após a assinatura. Verifique também se o seletor na assinatura (s=) corresponde ao publicado no DNS.
Qual é a causa da mensagem 'body hash did not verify'?
Essa mensagem significa que o hash do conteúdo calculado pelo servidor de recebimento não corresponde ao hash declarado na assinatura (tag bh=). O corpo da mensagem foi modificado entre a assinatura e a verificação. As causas mais frequentes são relays que adicionam rodapé, sistemas antivírus e ferramentas de reescrita de URL.
Um email pode ser entregue mesmo com uma falha DKIM?
Sim. DKIM sozinho não determina a entrega. É a política DMARC do domínio que decide: com p=none, o email é entregue mesmo se DKIM falhar. Com p=reject, o email é rejeitado apenas se SPF também falhar (DMARC exige que um dos dois passe). Muitos provedores entregam a mensagem na caixa de spam em vez de rejeitá-la.
Qual é a diferença entre dkim=fail e dkim=none?
dkim=fail significa que uma assinatura existe, mas sua verificação falhou. dkim=none significa que nenhuma assinatura DKIM está presente na mensagem. O primeiro é um problema de configuração, o segundo indica que DKIM não está ativado no servidor de envio.
O encaminhamento de email sempre invalida a assinatura DKIM?
Na maioria dos casos, sim. O encaminhamento frequentemente modifica o conteúdo (adição de cabeçalhos, reescrita de endereços), o que invalida a assinatura DKIM original. O protocolo ARC (RFC 8617) foi criado para resolver esse problema, formando uma cadeia de confiança entre os servidores intermediários. Gmail e Microsoft suportam ARC.
Como verificar se minha correção DKIM funcionou?
Após aplicar sua correção, envie um email de teste para um endereço Gmail ou Outlook. Abra os cabeçalhos da mensagem recebida e procure por Authentication-Results. Se você vir dkim=pass, a correção está funcionando. Você também pode usar uma ferramenta de teste online que exibe os resultados detalhados de autenticação.
Glossário
- DKIM (DomainKeys Identified Mail): protocolo de autenticação de email por assinatura criptográfica, verificando a integridade das mensagens enviadas.
- Body hash: impressão digital SHA-256 do corpo do email, incluída na assinatura DKIM (tag
bh=). - Seletor: identificador de texto que forma o endereço DNS da chave pública DKIM (
seletor._domainkey.dominio). - Canonicalização: normalização da mensagem (espaços, capitalização) antes do cálculo da assinatura. Modos:
simpleourelaxed. - ARC (Authenticated Received Chain): protocolo RFC 8617 que preserva os resultados de autenticação durante o encaminhamento de emails.
- Alinhamento DKIM: verificação pelo DMARC de que o domínio
d=da assinatura corresponde ao domínio doFrom:.
Gere suas chaves DKIM em poucos segundos: use o Gerador DKIM para criar um par de chaves RSA 2048 ou Ed25519 com o registro DNS pronto para publicar.
📚 Guias DKIM relacionados
- Como encontrar seu seletor DKIM: 4 métodos: cabeçalhos de email, DNS, console de administração e scan automático.
- O que é um registro DKIM? O guia completo: funcionamento, tags DNS, RSA vs Ed25519 e rotação de chaves.


