Qué comprueba la herramienta
Lee los registros TXT del dominio que introduces y selecciona el que comienza por v=spf1. Después sigue cada include y redirect como lo haría un servidor receptor, registra cada búsqueda que requiere una consulta DNS y comprueba la sintaxis de todos los términos.
No interviene ninguna dirección IP. La cuestión es si el registro es válido y puede evaluarse sin superar los límites para cualquiera que tenga que hacerlo, no si un servidor concreto puede enviar. Para comprobarlo, envía un mensaje mediante la prueba completa. El informe muestra el resultado que obtuvo realmente el receptor.
Demasiadas consultas DNS: el límite de diez
RFC 7208 limita una evaluación SPF a diez términos que requieren una consulta DNS: include, a, mx, ptr, exists y redirect. El recuento abarca todo el árbol, por lo que un include que a su vez incluye otros tres utiliza cuatro. Si se supera el límite, el resultado es permerror, que DMARC considera como SPF no superado.
La herramienta cuenta todos los términos, incluidos aquellos a los que quizá nunca llegue la evaluación, porque una evaluación real se detiene en la primera coincidencia. Los servidores incluidos al principio siguen superando la comprobación y los que aparecen más adelante empiezan a fallar. Desde fuera, parece que el correo funciona para algunos mensajes y para otros no.
Los términos ip4 e ip6 no consumen consultas. Sustituir los include por intervalos de direcciones, lo que se conoce como flattening, reduce el recuento, pero obliga a mantener manualmente esos intervalos sincronizados con los de tus proveedores.
Errores que conviene buscar
Dos registros SPF en un mismo dominio. Ocurre cuando la guía de configuración de un segundo proveedor indica que se añada un registro y nadie lo combina con el primero. Tener dos registros ya provoca por sí solo un permerror.
Una terminación +all, que permite que cualquier servidor de internet supere la comprobación, o ?all, que no dice nada sobre ningún servidor y, por tanto, no protege nada. Un término ptr, que RFC 7208 indica que no debe utilizarse. Los include de servicios que la empresa dejó de usar hace años siguen consumiendo una consulta cada uno.
Preguntas
¿Cómo es un registro SPF?
Es un único registro TXT del dominio que comienza por v=spf1, enumera quién puede enviar y termina con una regla para todos los demás. v=spf1 include:_spf.google.com ip4:203.0.113.5 ~all permite enviar a Google Workspace y a un servidor, y aplica softfail al resto. Un dominio solo puede publicar uno.
¿SPF softfail o hardfail: ~all o -all?
Una vez implementado DMARC, ambas opciones funcionan, porque DMARC decide qué ocurre con un mensaje que falla. ~all (softfail) es la opción más segura mientras aún identifica todos los servicios que envían en su nombre. Cambie a -all cuando los informes DMARC no muestren ningún fallo legítimo.
¿Por qué mi registro supera la prueba completa, pero aquí muestra más de diez consultas?
El receptor dejó de evaluar el registro en el primer término que coincidía con su servidor, por lo que no realizó las consultas restantes. Otro servidor situado más abajo en la lista haría que la misma evaluación superase las diez consultas y fallase.
¿Qué es una consulta vacía?
Una consulta DNS que no devuelve registros o que busca un nombre inexistente. RFC 7208 permite que una evaluación tenga dos consultas de este tipo; una tercera provoca un permerror. La causa habitual son mecanismos include para dominios que ya no existen.
¿Puede un dominio tener dos registros SPF?
No. RFC 7208 permite un solo registro que empiece por v=spf1. Si hay dos, todas las evaluaciones terminan en permerror. Combínalos: conserva un único v=spf1, añade los términos include e ip4 de ambos y termina con un solo all. v=spf1 include:_spf.google.com include:servers.mcsv.net ~all cubre dos proveedores en un único registro.
Guía completa: Multiple SPF records
¿Qué significa SPF permerror?
Error permanente: el registro no se puede evaluar tal como está publicado, por lo que volver a intentarlo da el mismo resultado. Las causas habituales son más de diez consultas DNS, dos registros SPF en un dominio, un error de sintaxis y una tercera consulta sin resultado. DMARC considera que un permerror significa que SPF no pasa la validación.
Guía completa: SPF permerror: too many DNS lookups
¿Qué ocurre si no se encuentra ningún registro SPF?
Los receptores obtienen el resultado none, que DMARC trata igual que un fail, y cualquiera puede usar tu dominio como remitente del sobre. Publica un registro TXT en el propio dominio que empiece por v=spf1, incluya los servicios que envían en tu nombre y termine en ~all o -all.