O que faz o verificador
Lê os registos TXT do domínio introduzido e identifica aquele que começa por v=spf1. Depois, segue todos os include e redirect como faria um servidor recetor, regista cada consulta que implica uma pesquisa DNS e verifica a sintaxe de todos os termos.
Não está envolvido qualquer endereço IP. A questão aqui é saber se o registo é válido e se pode ser avaliado dentro dos limites por qualquer servidor, não se um servidor específico pode enviar. Para isso, envie uma mensagem através do teste completo. O relatório mostra o resultado que o servidor recetor obteve efetivamente.
Demasiadas pesquisas DNS: o limite de dez
O RFC 7208 limita uma avaliação SPF a dez termos que exigem uma consulta DNS: include, a, mx, ptr, exists e redirect. A contagem abrange toda a árvore, por isso um include que, por sua vez, inclui mais três utiliza quatro consultas. Se o limite for ultrapassado, o resultado é permerror, que o DMARC considera como uma falha de SPF.
O verificador conta todos os termos, incluindo aqueles a que a avaliação pode nunca chegar, porque uma avaliação real termina na primeira correspondência. Os servidores indicados no início continuam a passar e os que aparecem mais abaixo começam a falhar. Visto do exterior, parece que o email funciona para algumas mensagens, mas não para outras.
Os termos ip4 e ip6 não têm qualquer custo. Substituir include por intervalos de endereços, um processo conhecido como flattening, reduz a contagem, mas obriga a manter manualmente esses intervalos sincronizados com os seus fornecedores.
Erros que deve procurar
Dois registos SPF no mesmo domínio. Isto acontece quando o guia de configuração de um segundo fornecedor indica que deve adicionar um registo e ninguém o combina com o primeiro. Dois registos causam, por si só, um permerror.
Uma terminação +all, que permite que qualquer servidor na Internet passe, ou ?all, que nada diz sobre qualquer servidor e, por isso, não oferece proteção. Um termo ptr, que o RFC 7208 recomenda não utilizar. Os include de serviços que a empresa deixou de utilizar há anos continuam a consumir uma consulta cada um.
Perguntas
Qual é o formato de um registo SPF?
É um único registo TXT no domínio que começa por v=spf1, indica quem pode enviar e termina com uma regra para todos os restantes. v=spf1 include:_spf.google.com ip4:203.0.113.5 ~all permite que o Google Workspace e um servidor enviem e atribui softfail aos restantes. Um domínio só pode publicar um.
SPF softfail ou hardfail: ~all ou -all?
Depois de configurar o DMARC, qualquer uma das opções funciona, porque o DMARC decide o que acontece a uma mensagem que falha. ~all (softfail) é a opção mais segura enquanto ainda identifica todos os serviços que enviam em seu nome. Mude para -all quando os relatórios DMARC mostrarem que nenhum envio legítimo está a falhar.
Porque é que o meu registo passa no teste completo, mas mostra mais de dez consultas aqui?
O servidor de receção interrompeu a avaliação no primeiro termo que correspondeu ao seu servidor, por isso não efetuou as restantes consultas. Outro servidor mais abaixo na lista faria a mesma avaliação ultrapassar as dez consultas e falhar.
O que é uma consulta nula?
Uma consulta DNS que não devolve registos ou que consulta um nome inexistente. A RFC 7208 permite duas consultas deste tipo numa avaliação; uma terceira causa um permerror. A causa habitual são includes de domínios que já não existem.
Um domínio pode ter dois registos SPF?
Não. O RFC 7208 permite um registo que comece por v=spf1 e, se existirem dois, todas as avaliações terminam em permerror. Combine-os: mantenha um único v=spf1, adicione os termos include e ip4 de ambos e termine com um único all. v=spf1 include:_spf.google.com include:servers.mcsv.net ~all abrange dois fornecedores num único registo.
Guia completo: Multiple SPF records
O que significa SPF permerror?
Erro permanente: o registo não pode ser avaliado tal como está publicado, pelo que uma nova tentativa produz o mesmo resultado. As causas habituais são mais de dez pesquisas DNS, dois registos SPF num domínio, um erro de sintaxe e uma terceira pesquisa sem resultados. O DMARC considera que um permerror não passa no SPF.
Guia completo: SPF permerror: too many DNS lookups
O que acontece se não for encontrado um registo SPF?
Os destinatários obtêm o resultado none, que o DMARC trata da mesma forma que um fail, e qualquer pessoa pode usar o seu domínio como remetente do envelope. Publique um único registo TXT no próprio domínio, que comece por v=spf1, indique os serviços que enviam em seu nome e termine em ~all ou -all.