Também disponível em: English · Español · Français · العربية
Verificador de registros SPF
Separe um registro SPF em seus termos, conte as consultas DNS que ele gasta e entenda o limite que quebra e-mail em silêncio.
O que é o limite de consultas do SPF
Um registro SPF é uma linha de texto no DNS listando quem pode enviar e-mail como seu domínio. Servidores receptores o avaliam, e alguns termos os obrigam a perguntar outra coisa ao DNS: include, a, mx, ptr e exists, mais o modificador redirect. O RFC 7208 põe um teto duro nisso: implementações devem limitar esses termos a dez durante a avaliação, e se o limite for excedido devem retornar permerror.
Permerror não é um bounce. Significa que o SPF não chegou a ser avaliado, então seu e-mail chega sem nenhum pass de SPF atrás, o que por sua vez enfraquece o DMARC e piora a entrega de formas que ninguém te reporta. Nada dá erro, nada é registrado, e o registro continua parecendo perfeitamente razoável quando você lê.
Os outros termos são de graça. all, ip4, ip6 e o modificador exp aparecem no mesmo parágrafo como não causadores de consultas, então um registro com trezentas faixas de IP não custa nada, enquanto um com onze includes já está quebrado. Essa assimetria é o jogo todo, e esta página mostra quais dos seus termos gastam do orçamento.
Como usar
- Cole o registro. O valor TXT em si, começando por v=spf1. Os exemplos cobrem um registro simples, um pesado, um quebrado por conta própria e um registro real de quatro termos que está quebrado do mesmo jeito.
- Leia o orçamento. Três números: o que este registro gasta, o limite de dez, e quantos dos seus termos são includes cujo custo próprio é desconhecido aqui.
- Leia as conferências estruturais. O que dá para resolver só com o texto: um all faltando, termos depois do all que nunca são alcançados, +all, um redirect morto, ptr.
Por que esta ferramenta não pode dizer que seu registro está bom
Tudo neste site roda no seu navegador, e um navegador não faz consultas DNS. Então esta página consegue contar os termos que causam consultas no registro à frente dela e nada mais. Cada include custa uma consulta mais o que custar o registro dele, e essa segunda parte precisa de DNS.
Queríamos saber o quanto isso importa, então resolvemos os registros SPF dos 250 domínios de maior tráfego da web e seguimos cada include até o fim. 198 publicam um registro. Nenhum passava de dez consultas na contagem rasa — e quatro passam quando os includes são seguidos, então o SPF deles está em permerror hoje. Uma contagem feita sem DNS não achou nenhum dos quatro.
Um desses quatro diz v=spf1 a mx include:iiko.ru include:amazonses.com -all. Quatro termos. É o quarto botão de exemplo desta página, e a ferramenta o reporta como quatro de dez sem nada estruturalmente errado, porque é toda a informação disponível sem perguntar ao DNS. Na real ele custa quinze e não chega a ser avaliado.
É por isso que o número acima é apresentado como um piso e nunca como um veredito. Em toda a amostra, 86 dos 198 registros escondiam consultas extras atrás dos seus includes — uma mediana de duas a mais, e até quinze a mais no pior caso. Qualquer ferramenta que mostre uma contagem rasa sem dizer isso está te contando que um registro em nove está tranquilo quando ele pode estar em vinte e três.
O que vale conferir aqui e o que precisa de um resolvedor
Bastante coisa se decide só com o texto, e essas conferências são o motivo de abrir esta página. Se o registro começa com v=spf1, porque sem isso ele simplesmente não é SPF e é ignorado. Se termina com um all, e com qual qualificador: +all autoriza a internet inteira a enviar como seu domínio e quase nunca é o pretendido. Se há algo depois do all, onde nunca será alcançado, porque a avaliação para na primeira correspondência e all sempre corresponde.
Também se um redirect aparece junto de um all, o que deixa o redirect morto: ele só é consultado quando nada correspondeu. Se ptr aparece, coisa que a especificação desaconselha. E se o registro já passa de dez consultas antes de seguir qualquer include, o que acontece e, quando acontece, é inequívoco.
O que realmente precisa de um resolvedor: o total verdadeiro de consultas, se cada include de fato resolve para um registro, e o limite de consultas vazias — a especificação também diz que implementações deveriam limitá-las a duas, e isso não dá para contar sem fazer as consultas. Para isso use um verificador que resolva, e trate o número daqui como o piso que ele é.
Mais uma coisa que ele não faz: não diz nada sobre se os endereços listados são os certos. SPF é uma lista de quem pode enviar; nenhuma ferramenta pode dizer que essa lista bate com os seus remetentes reais.
Por que é grátis?
É análise de strings e uma contagem, rodando no seu navegador. Não há resolvedor a pagar nem conta a criar — e a ausência desse resolvedor é declarada acima com clareza, não escondida.
Nada do que você cola é enviado, guardado ou registrado. Um registro SPF é DNS público, então não é segredo; simplesmente não é da conta de mais ninguém qual domínio você está olhando.