Gratis · sin cuenta

Verificador de SPF y DMARC

Consulta online los registros SPF, DMARC, MTA-STS y CAA de un dominio y mira cómo se valora cada uno. Introduce el dominio desde el que envías correo, por ejemplo example.com en lugar de www.example.com.

Una comprobación gratuita de la configuración pública del sitio. Tu sitio web no se modifica.

Sin registro Sin tráfico destructivo Comprobaciones de sitios web públicos
Referencia de registros

Qué hace cada registro y cómo se valora

El verificador lee estos registros en el nombre de host que introduces. La falta de SPF, DMARC y MTA-STS solo se señala cuando el host tiene registros MX, porque un host que no recibe correo no los necesita de la misma forma.

RegistroDónde se publicaUna buena configuraciónCómo lo valora este verificador
MXRegistros MX en el nombre de host.Presentes en los dominios que reciben correo.Se cuentan y se muestran; nunca son un hallazgo por sí solos.
SPFUn registro TXT que empieza por v=spf1 en el nombre de host.Exactamente un registro SPF que incluya todos los servicios que envían correo por el dominio.Ausente cuando el host tiene registros MX: medio. Se muestra el texto del registro.
Mecanismo all de SPFEl último término del registro SPF.-all o ~all.+all: alto. ?all: bajo. -all y ~all no generan nada.
Consultas DNS de SPFLos términos include, a, mx, ptr, exists y redirect del registro.Como máximo diez términos que necesiten una consulta DNS.Más de diez en el registro de nivel superior: medio. Los destinos include: no se expanden, así que las consultas anidadas no se cuentan.
DMARCUn registro TXT que empieza por v=DMARC1 en _dmarc.example.com para example.com.p=quarantine o p=reject cuando los informes muestren que todo el correo legítimo pasa.Ausente cuando el host tiene registros MX: medio. p=none: bajo. quarantine o reject: aprobado. sp, pct, rua y la alineación no se evalúan. En un subdominio, los receptores también aplican la política DMARC del dominio organizativo, que esta comprobación no lee.
MTA-STSUn registro TXT que empieza por v=STSv1 en _mta-sts.example.com, más un archivo de política en el host mta-sts.El registro y el archivo de política, en modo enforce una vez probados.Registro ausente cuando el host tiene registros MX: bajo. Solo se comprueba el registro DNS; el archivo de política no se descarga.
CAARegistros CAA en el nombre de host.Registros que solo nombran a las entidades emisoras de certificados que usas.Cualquier registro CAA: aprobado. Ninguno: bajo. El contenido no se compara con tu certificado. En un subdominio, las entidades emisoras de certificados también respetan el CAA del dominio principal, que esta comprobación no lee.
DKIMRegistros TXT en selector._domainkey.example.com.Una clave por cada servicio que firma tu correo.No se comprueba: los nombres de selector no se pueden descubrir solo con DNS.

Los informes TLS, DNSSEC y BIMI no se comprueban.

Cómo corregirlo

Cómo corregir los hallazgos habituales de SPF y DMARC

Cambia un registro cada vez y da tiempo a que el DNS se actualice antes de volver a comprobar. Los ejemplos usan example.com y servicios de ejemplo; sustitúyelos por tu dominio y por los servicios que realmente envían tu correo.

Publica DMARC en modo de supervisión

Añade un único registro TXT en _dmarc del dominio de tu dirección From. p=none no cambia la entrega, y rua pide a los receptores informes agregados que muestran qué servidores envían correo en nombre de tu dominio y si pasan SPF o DKIM con alineación. Si los informes van a otro dominio, ese dominio debe publicar un registro que los autorice.

; DMARC record for example.com, monitoring only
_dmarc.example.com.  TXT  "v=DMARC1; p=none; rua=mailto:dmarc-reports@example.com"

; Only if rua points to another domain, for example rua=mailto:reports@example.net,
; example.net publishes:
example.com._report._dmarc.example.net.  TXT  "v=DMARC1"

Pasa a quarantine y luego a reject

Cuando los informes muestren que todas las fuentes legítimas pasan, cambia a p=quarantine, vuelve a revisar los informes y después pasa a p=reject. RFC 7489 ofrecía pct para aplicar la política a una parte del correo que falla. RFC 9989, que la sustituye, elimina pct porque los valores parciales se aplicaban de forma desigual, y añade t=y, que pide a los receptores aplicar un nivel por debajo de la política publicada. Los receptores que aún siguen RFC 7489 ignoran t=y, así que añade también pct=0 durante la prueba: les pide el mismo tratamiento un nivel por debajo. Quita ambas etiquetas para aplicar la política.

; Publish one version at a time, in this order, after p=none
; 1. Quarantine in test mode (t=y, plus pct=0 for RFC 7489 receivers), then in full
_dmarc.example.com.  TXT  "v=DMARC1; p=quarantine; t=y; pct=0; rua=mailto:dmarc-reports@example.com"
_dmarc.example.com.  TXT  "v=DMARC1; p=quarantine; rua=mailto:dmarc-reports@example.com"
; 2. Reject in test mode, then in full
_dmarc.example.com.  TXT  "v=DMARC1; p=reject; t=y; pct=0; rua=mailto:dmarc-reports@example.com"
_dmarc.example.com.  TXT  "v=DMARC1; p=reject; rua=mailto:dmarc-reports@example.com"

Un solo registro SPF por dominio

Un nombre solo puede tener un registro TXT que empiece por v=spf1; con dos, SPF falla con un error permanente. Reúne todos los remitentes en un solo registro. include: consulta el registro propio de un proveedor, y redirect= delega toda la política en otro dominio, algo útil cuando varios dominios comparten una política. redirect= se ignora si el registro también contiene un término all.

; Before: two SPF records on one name (permerror)
example.com.  TXT  "v=spf1 include:_spf.mailhost.example ~all"
example.com.  TXT  "v=spf1 include:spf.newsletter.example ~all"

; After: one record
example.com.  TXT  "v=spf1 include:_spf.mailhost.example include:spf.newsletter.example ~all"

; Another domain that uses the same policy
example.org.  TXT  "v=spf1 redirect=example.com"

No superes las diez consultas DNS

SPF admite como máximo diez términos que requieren una consulta DNS, contando todos los include anidados: include, a, mx, ptr, exists y redirect. Uno más y SPF falla con un error permanente. Quita los include de servicios que ya no usas, sustituye a y mx por rangos ip4 o ip6 que controles, elimina ptr y lleva a un remitente masivo a un subdominio con su propio registro SPF. Copiar las direcciones de un proveedor en tu registro también ahorra consultas, pero la copia queda desfasada cuando el proveedor las cambia. Este verificador solo cuenta los términos del nivel superior.

; One lookup each: include, a, mx, ptr, exists, redirect (plus every lookup inside an include)
; No lookup: ip4, ip6, all

; Before: 4 lookups in the top-level record alone
example.com.       TXT  "v=spf1 a mx include:_spf.mailhost.example include:spf.oldtool.example ~all"

; After: fixed address, unused service removed, bulk mail on its own subdomain
example.com.       TXT  "v=spf1 ip4:192.0.2.10 include:_spf.mailhost.example ~all"
news.example.com.  TXT  "v=spf1 include:spf.newsletter.example ~all"

Elige ~all o -all con cuidado

Termina el registro con ~all (softfail) o -all (fail), nunca con +all, que deja pasar a cualquier servidor. -all es la señal más estricta, pero un receptor que comprueba SPF pronto puede rechazar entonces correo reenviado antes de que DMARC vea su firma DKIM válida. Con una política DMARC aplicada, ~all deja la decisión a DMARC. Un dominio que no envía correo puede publicar v=spf1 -all.

; Choose one ending for example.com, not both
example.com.  TXT  "v=spf1 include:_spf.mailhost.example ~all"
example.com.  TXT  "v=spf1 include:_spf.mailhost.example -all"

; A domain that sends no mail
example.net.  TXT  "v=spf1 -all"

Alinea DKIM con tu dominio From

DMARC pasa cuando SPF o DKIM pasan para un dominio alineado con la dirección From. Muchos servicios firman por defecto con su propio dominio, lo que pasa DKIM pero no la alineación. Activa en cada servicio la firma con tu propio dominio, para que la firma lleve d=example.com, y publica la clave o el CNAME que te dé el servicio bajo su selector. La alineación relajada, la predeterminada, acepta cualquier subdominio del mismo dominio organizativo; adkim=s y aspf=s exigen una coincidencia exacta.

; Key for a sending service, selector s1: a CNAME or a TXT record, as the service says
s1._domainkey.example.com.  CNAME  s1.dkim.mailhost.example.
s1._domainkey.example.com.  TXT    "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOC..."

; Aligned signature in a delivered message: d= matches the From domain
From: news@example.com
DKIM-Signature: v=1; a=rsa-sha256; d=example.com; s=s1; ...

Un cambio de DNS puede tardar lo que dure el TTL del registro anterior en llegar a todos los resolvers. Después vuelve a ejecutar el verificador con el dominio de tu dirección From, porque lee exactamente el nombre de host que introduces.

Cómo leer el resultado

Qué significa cada estado.

  1. 01AprobadoSe encontró el registro y supera la comprobación.
  2. 02Bajo · Medio · AltoFalta un registro o está configurado de una forma que esta comprobación señala. El nivel es el mismo que usa el snapshot completo.
  3. 03ObservadoSe anotó un registro, pero la comprobación no dio ni un aprobado ni un hallazgo.
  4. 04Nada observadoLa comprobación se ejecutó, pero no encontró ningún registro que mostrar.
  5. 05No aplicaLa comprobación no aplica, por ejemplo SPF o DMARC cuando el host no tiene registros MX.
  6. 06No medidoLa consulta DNS falló, así que la comprobación no cuenta como aprobada.
Alcance

Lo que este verificador no hace.

  1. 01Lee los registros en el nombre de host exacto que introduces. Para www.example.com consulta www.example.com y _dmarc.www.example.com, no example.com.
  2. 02El nombre de host debe resolver a una dirección. Un dominio solo de correo sin registro A o AAAA no obtiene resultado aquí.
  3. 03No comprueba DKIM, los informes TLS ni DNSSEC, y no expande los términos include: de SPF.
  4. 04Los registros de correo se leen solo del DNS público y no se envía ningún correo. La misma ejecución también hace algunas peticiones normales a la página de inicio para las otras siete comprobaciones. No es una prueba de entregabilidad, ni un escaneo de vulnerabilidades, ni una prueba de penetración.
  5. 05El resultado es una vista puntual; los cambios de DNS pueden tardar en llegar a todos los resolvers.
Preguntas frecuentes

Preguntas sobre la comprobación de SPF y DMARC.

¿Por qué www.example.com no muestra ningún registro SPF?

El verificador lee el nombre de host exacto. Los registros de correo suelen estar en el dominio desde el que envías correo, así que introduce directamente example.com.

¿Está mal p=none?

p=none es el modo de supervisión. Es un primer paso normal mientras lees los informes DMARC, por eso se valora como bajo. Pasa a quarantine o reject cuando todo el correo legítimo pase.

¿Por qué no se comprueba DKIM?

Las claves DKIM se publican con nombres de selector que solo conocen los servicios de envío, así que no se pueden encontrar solo con DNS. Compruébalas en la configuración de cada servicio que envía tu correo.

¿Comprueba si mi correo llega a la bandeja de entrada?

No. Los registros de correo se leen solo del DNS público y no se envía ningún correo; la misma ejecución también hace algunas peticiones normales a la página de inicio para las otras comprobaciones. No es un escaneo de vulnerabilidades ni una prueba de penetración. La llegada a la bandeja de entrada también depende del servicio de envío, de su reputación y de cada mensaje.

¿Puede un dominio tener dos registros SPF?

No. Si un nombre tiene más de un registro TXT que empieza por v=spf1, SPF devuelve un error permanente para cada mensaje. Une los mecanismos en un solo registro; un registro largo puede dividirse en varias cadenas entre comillas dentro de ese mismo registro, y los receptores las unen sin añadir espacios.

¿Por qué falla DMARC si SPF pasa?

SPF comprueba el remitente del sobre, a menudo un dominio de rebote de tu servicio de correo, no el dominio de tu dirección From. Ese resultado solo cuenta para DMARC cuando los dos dominios están alineados. En cada servicio, configura la firma DKIM con tu propio dominio o un remitente de sobre propio en uno de tus subdominios.

¿Cuánto tiempo debo quedarme en p=none?

Hasta que los informes agregados muestren que todas las fuentes legítimas pasan con un dominio alineado, incluido el correo que sale solo una vez al mes, como las facturas. Para dominios cuyos usuarios escriben en listas de correo, RFC 9989 desaconseja reject; si aun así lo eliges, pasa antes al menos un mes en none y otro tanto en quarantine.