SPF PermError: o guia completo para entender, diagnosticar e corrigir esse erro
Por CaptainDNS
Publicado em 4 de março de 2026

- Um SPF PermError é um erro permanente que torna seu registo SPF inválido e provoca a rejeição dos seus e-mails
- As 6 causas: exceder 10 DNS lookups, registos SPF múltiplos, erros de sintaxe, void lookups > 2, redirect inválido, includes circulares
- O PermError faz o DMARC falhar em cascata: se o DKIM também falhar, os seus e-mails são rejeitados ou enviados para spam
- Diagnóstico em 6 etapas: verificar duplicatas, a sintaxe, o contador de lookups, os void lookups, o redirect e os loops
- Cada causa tem uma correção específica: fusão, reescrita, flattening, remoção de mecanismos inválidos
A sua monitorização DMARC exibe de repente centenas de resultados permerror para o seu domínio. Os seus e-mails legítimos são rejeitados pelo Gmail, Outlook e Yahoo. No entanto, não alterou nada recentemente na configuração SPF.
O SPF PermError é um dos erros mais comuns e mais mal compreendidos da autenticação de e-mail. Diferentemente de uma simples falha SPF (fail ou softfail), o PermError significa que o seu registo é estruturalmente inválido: os servidores de recebimento não conseguem sequer avaliá-lo. E as causas são múltiplas, desde o excesso do limite de 10 lookups até um simples erro de sintaxe.
Este guia detalha as 6 causas possíveis de um SPF PermError, explica como identificar com precisão qual delas afeta o seu domínio e fornece as correções adequadas para cada situação.
O que é um SPF PermError?
Definição conforme a RFC 7208
A RFC 7208, secção 2.6.7 define o resultado permerror como um erro permanente na avaliação SPF. Esse resultado é retornado quando o registo SPF não pode ser corretamente interpretado pelo servidor de recebimento.
Diferentemente dos outros resultados SPF (pass, fail, softfail, neutral), o PermError indica um problema na estrutura do registo, não na autorização do remetente. O registo está quebrado e nenhuma decisão de autorização pode ser tomada.
Diferença entre PermError e TempError
| Resultado | Tipo | Causa | Ação |
|---|---|---|---|
| PermError | Erro permanente | Registo SPF inválido | Correção obrigatória pelo administrador |
| TempError | Erro temporário | Timeout DNS, servidor indisponível | Resolução automática, nova tentativa |
fail | Resultado normal | IP não autorizado | Verificar o remetente |
softfail | Resultado normal | IP não autorizado (modo permissivo) | Aceito com marcação |
O TempError é transitório: um servidor DNS momentaneamente indisponível pode provocá-lo. O PermError, por sua vez, persiste enquanto o registo não for corrigido. Cada e-mail enviado a partir do seu domínio gera o mesmo erro.
As 6 causas de um SPF PermError
Causa 1: Exceder o limite de 10 DNS lookups
Esta é a causa mais frequente. A RFC 7208 limita a 10 o número de consultas DNS durante a avaliação SPF. Os mecanismos include:, a, mx, redirect e exists contam cada um como um lookup. No 11o lookup, o servidor retorna imediatamente permerror.
# Exemplo: 12 lookups (permerror)
v=spf1 include:_spf.google.com include:sendgrid.net include:servers.mcsv.net include:spf.brevo.com include:spf.protection.outlook.com mx ~all
Com Google Workspace (4 lookups), SendGrid (2), Mailchimp (1), Brevo (2), Microsoft 365 (2) e um MX (1), o total chega a 12. O primeiro guia desta série detalha os métodos para resolver esse problema específico.
Causa 2: Vários registos SPF no mesmo domínio
A RFC 7208 exige que um domínio publique um único registo TXT começando por v=spf1. Se a sua zona DNS contém dois registos SPF, o resultado é sistematicamente permerror.
# INCORRETO: dois registos SPF (permerror)
captaindns.com. TXT "v=spf1 include:_spf.google.com ~all"
captaindns.com. TXT "v=spf1 include:sendgrid.net ~all"
# CORRETO: um único registo unificado
captaindns.com. TXT "v=spf1 include:_spf.google.com include:sendgrid.net ~all"
Esse erro acontece frequentemente quando um novo serviço é adicionado por copiar e colar o registo fornecido pelo fornecedor, sem unificar com o existente.
Causa 3: Erros de sintaxe
Um erro de digitação, um espaço a mais ou um mecanismo mal escrito tornam o registo inválido:
| Erro | Exemplo | Correção |
|---|---|---|
| Prefixo ausente | include:_spf.google.com ~all | Adicionar v=spf1 no início |
| Mecanismo inválido | v=spf1 include _spf.google.com ~all | Substituir espaço por : |
| IP mal formatado | v=spf1 ip4:192.168.1 ~all | Corrigir para ip4:192.168.1.0/24 |
Mecanismo ptr | v=spf1 ptr:captaindns.com ~all | Remover (descontinuado RFC 7208) |
Duplo all | v=spf1 include:_spf.google.com ~all -all | Manter apenas um all |
Causa 4: Void lookups (limite de 2)
A RFC 7208, secção 11.1, impõe um segundo limite frequentemente ignorado: 2 void lookups no máximo. Um void lookup ocorre quando um mecanismo DNS retorna uma resposta vazia (NXDOMAIN ou nenhum resultado).
# Exemplo: includes apontando para domínios inexistentes
v=spf1 include:servico-antigo.captaindns.com include:servico-eliminado.captaindns.com include:_spf.google.com ~all
Se servico-antigo.captaindns.com e servico-eliminado.captaindns.com retornam NXDOMAIN, atinge 2 void lookups. Um terceiro include inválido acionaria o PermError.
Causa 5: Redirect para um domínio sem SPF
O mecanismo redirect= redireciona a avaliação SPF para outro domínio. Se esse domínio não possui um registo SPF, o resultado é permerror.
# INCORRETO: domínio de destino sem registo SPF
v=spf1 redirect=_spf.captaindns.com
# (se _spf.captaindns.com não possui TXT v=spf1 → permerror)
# CORRETO: domínio de destino com SPF válido
v=spf1 redirect=_spf.captaindns.com
# (com _spf.captaindns.com : "v=spf1 ip4:203.0.113.0/24 ~all")
Causa 6: Includes circulares ou irresolvíveis
Se o seu SPF contém uma cadeia de includes que forma um loop, a avaliação falha:
# Loop circular (permerror)
# captaindns.com → v=spf1 include:_spf.captaindns.com ~all
# _spf.captaindns.com → v=spf1 include:captaindns.com ~all
Esse caso é raro, mas ocorre durante reconfigurações DNS mal coordenadas.
Como diagnosticar um SPF PermError?

Siga estas etapas na ordem para identificar a causa exata:
Etapa 1: Verificar o número de registos SPF
dig +short TXT captaindns.com | grep "v=spf1"
Se o comando retornar mais de uma linha, é a causa 2. Unifique os registos.
Etapa 2: Verificar a sintaxe
Cada mecanismo deve estar corretamente formatado: include:domínio, ip4:endereço/máscara, mx, a. Os erros mais comuns: espaço em vez de :, prefixo v=spf1 ausente, duplo all.
Etapa 3: Contar os DNS lookups
Resolva recursivamente cada include:, a, mx, redirect e exists. O total não deve ultrapassar 10.
Etapa 4: Verificar os void lookups
Teste cada domínio referenciado por include: e redirect=. Se mais de 2 retornam NXDOMAIN ou uma resposta vazia, é a causa 4.
Etapa 5: Testar o redirect
Se o seu SPF utiliza redirect=, verifique se o domínio de destino possui um registo SPF válido.
Etapa 6: Procurar loops
Siga a cadeia de includes manualmente para detetar possíveis ciclos.
Como corrigir cada tipo de PermError?
Registos múltiplos: unificar
Recupere os mecanismos de cada registo SPF e combine-os em um único:
# Antes: 2 registos (permerror)
"v=spf1 include:_spf.google.com ~all"
"v=spf1 include:sendgrid.net ~all"
# Depois: 1 único registo
"v=spf1 include:_spf.google.com include:sendgrid.net ~all"
Crie o seu registo unificado com nosso SPF Generator.
Erros de sintaxe: reescrever
Compare o seu registo com a sintaxe oficial da RFC 7208. Os pontos a verificar:
- O prefixo
v=spf1é obrigatório e deve estar na primeira posição - Cada mecanismo é separado por um único espaço
- Os mecanismos
include:eredirect=são seguidos de um domínio válido - Um único mecanismo
allna última posição - O mecanismo
ptré descontinuado, remova-o
DNS lookups: reduzir para menos de 10
Três abordagens para reduzir o número de lookups:
- Eliminar includes desnecessários: remova os serviços que não utiliza mais
- Substituir por IPs diretos: para os seus próprios servidores, use
ip4:eip6:no lugar deinclude: - SPF flattening: resolva automaticamente todos os includes em endereços IP com nosso SPF Flattener
Void lookups: limpar referências inválidas
Remova ou corrija cada include: que aponta para um domínio inexistente. Verifique se todos os domínios referenciados possuem um registo DNS válido.
Redirect inválido: publicar o SPF de destino
Certifique-se de que o domínio utilizado com redirect= possui um registo TXT v=spf1 ... válido.
SPF PermError e DMARC: o efeito dominó

Um SPF PermError não fica isolado. O DMARC verifica dois mecanismos de autenticação: SPF e DKIM. Quando o SPF retorna permerror, o DMARC considera o alinhamento SPF como falho. Se o DKIM também falhar (chave expirada, cabeçalho modificado, assinatura inválida), os dois pilares do DMARC caem.
A cascata é direta:
- SPF PermError: o DMARC não consegue validar o alinhamento SPF
- Se o DKIM também falhar: o DMARC falha totalmente
- Com
p=reject: o e-mail é rejeitado pelo servidor de recebimento - Com
p=quarantine: o e-mail é colocado no spam
O problema é particularmente traiçoeiro com uma política DMARC p=none: os e-mails passam, mas os seus relatórios DMARC mostram taxas de falha crescentes. No dia em que mudar para p=reject, todos os e-mails cujo SPF está em PermError serão rejeitados.
Plano de ação recomendado
- Diagnostique a causa exata: use as 6 etapas de verificação para identificar o tipo de PermError
- Aplique a correção específica: cada causa tem o seu próprio método de correção
- Teste antes de publicar: valide o seu novo registo em uma ferramenta de diagnóstico antes de modificar a sua zona DNS
- Verifique o impacto no DMARC: após a correção, confirme que os seus relatórios DMARC não mostram mais PermError
- Implemente uma monitorização: monitorize o seu registo SPF mensalmente para detetar regressões
FAQ
O que é um SPF PermError?
Um SPF PermError é um erro permanente retornado quando um registo SPF não pode ser corretamente avaliado pelo servidor de recebimento. Diferentemente de um TempError (transitório), o PermError persiste enquanto o registo não for corrigido pelo administrador DNS.
Quais são as causas mais frequentes de um SPF PermError?
As 6 causas principais são: o excesso do limite de 10 DNS lookups, a presença de vários registos SPF no mesmo domínio, erros de sintaxe, o excesso de 2 void lookups, um redirect para um domínio sem SPF e includes circulares.
Um SPF PermError faz o DMARC falhar?
Sim. O DMARC considera um SPF PermError como uma falha no alinhamento SPF. Se o DKIM também falhar, o DMARC falha totalmente. Com uma política p=reject, os e-mails são então rejeitados pelo servidor de recebimento.
Como saber se meu SPF tem um PermError?
Utilize uma ferramenta de diagnóstico SPF que avalia o seu registo em tempo real. Os relatórios DMARC agregados (formato RUA) também indicam os resultados SPF para cada fonte de envio, incluindo os PermError.
Qual é a diferença entre PermError e TempError?
O PermError é um erro permanente causado por um registo SPF inválido (sintaxe, lookups, estrutura). O TempError é um erro temporário causado por um problema DNS transitório (timeout, servidor indisponível). O TempError geralmente resolve-se sozinho, o PermError requer intervenção manual.
O que é um void lookup?
Um void lookup ocorre quando um mecanismo DNS no seu SPF retorna uma resposta vazia (NXDOMAIN ou nenhum resultado). A RFC 7208 limita os void lookups a 2 por avaliação SPF. Acima disso, o resultado é PermError, mesmo que o total de lookups permaneça inferior a 10.
É possível ter um PermError com menos de 10 lookups?
Sim. O PermError pode ser acionado por outras causas além do excesso de 10 lookups: registos SPF múltiplos, erros de sintaxe, void lookups superiores a 2, redirect inválido ou includes circulares. O contador de lookups é apenas uma das 6 verificações necessárias.
Glossário
- PermError: erro permanente retornado quando um registo SPF é estruturalmente inválido e não pode ser avaliado pelo servidor de recebimento.
- TempError: erro temporário retornado quando um problema DNS transitório impede a avaliação SPF. Geralmente se resolve automaticamente.
- Void lookup: consulta DNS que retorna uma resposta vazia (NXDOMAIN ou nenhum resultado). Limitado a 2 por avaliação SPF conforme a RFC 7208.
- DMARC: protocolo de autenticação de e-mail que verifica o alinhamento SPF e DKIM para decidir o tratamento das mensagens (aceitar, enviar para spam, rejeitar).
- RFC 7208: especificação oficial do protocolo SPF (Sender Policy Framework) que define as regras de avaliação, os limites de lookups e os resultados possíveis.
Verifique o seu registo SPF agora: utilize nosso SPF Record Check para diagnosticar os erros e corrigir o seu SPF antes que ele afete a sua entregabilidade.
📚 Guias de SPF relacionados
- SPF "Too Many DNS Lookups": o guia completo para corrigir o limite de 10 lookups
- SPF Flattening vs SPF Macros: qual abordagem escolher para respeitar o limite de 10 lookups?


