Tutorial · 12 min de lectura

Los 7 registros DNS que todo remitente autohospedado necesita

Por AcelleMail Team May 8, 2026 12 min de lectura
tutorial deliverability

Una referencia DNS lista para copiar y pegar: SPF, DKIM, DMARC, MX, BIMI, MTA-STS y un CNAME de dominio de tracking. Sintaxis concreta para Cloudflare y Route53, el orden de publicación y qué hace realmente cada registro.

§1

Los siete registros, en orden de publicación

El email es inusual: un setup completo de remitente tiene siete registros DNS distintos repartidos entre tres o cuatro tipos de registro. Pierda uno y el cable igual mueve mensajes, pero los proveedores de buzones lo degradarán silenciosamente a la carpeta de spam. Publique los siete y cruza el umbral del "todo lo que Google pide" descrito en /guide/email-deliverability.

El orden importa: SPF y DKIM deberían aterrizar antes de que DMARC empiece a exigir alineación, de lo contrario el correo legítimo termina en cuarentena. La regla estándar entre vendors también es "espere a que el DNS propague" — permita al menos 30 minutos entre publicar un registro y pedirle al proveedor de buzones que reverifique.

#RegistroPropósitoSpec
1MXAdónde va el correo entrante de este dominioRFC 1035 §3.3.9
2SPF (TXT)IPs autorizadas a enviarRFC 7208
3DKIM (TXT)Clave pública de firmaRFC 6376
4DMARC (TXT)Política ante fallo de auth + reportesRFC 7489
5Tracking (CNAME)Trackers de clic y open bajo su dominioRFC 1035
6MTA-STSForzar TLS en el correo entranteRFC 8461
7BIMI (TXT)Logo de marca junto a los mensajes en la bandejadraft-blank-ietf-bimi

§2

1) MX — aunque no reciba mucho correo

Los registros MX (RFC 1035 §3.3.9) le indican al mundo dónde entregar el correo entrante de su dominio. Aunque su dominio de envío sea "solo saliente" (no lee respuestas en él), igual se requiere un registro MX — muchos proveedores de buzones bajan la reputación de los dominios sin MX, partiendo del supuesto de que los remitentes legítimos aceptan respuestas. Basta un único registro apuntando a cualquier servidor de correo alcanzable, aunque ese servidor solo entregue a un buzón postmaster.

; UI de Cloudflare DNS
Type: MX  Name: @  Mail server: mail.yourcompany.com  Priority: 10
# Route53 JSON
{ "Type": "MX", "Name": "yourcompany.com.", "TTL": 3600,
  "ResourceRecords": [{ "Value": "10 mail.yourcompany.com." }] }

§3

2) SPF — un solo TXT, ojo con la cuenta de lookups

SPF (RFC 7208) es un único registro TXT que lista qué IPs están autorizadas a enviar por el dominio. La regla dura: el total de lookups DNS recursivos debe quedarse bajo 10 (RFC 7208 §4.6.4). Cada include: consume uno; los includes anidados cuentan de forma acumulada. Los mecanismos ip4: / ip6: cuestan cero lookups, así que colapse includes viejos en rangos IP explícitos si la cuenta empieza a trepar.

# Para Amazon SES (pairing recomendado)
Type: TXT  Name: @  Value: v=spf1 include:amazonses.com -all
# Para Postal/Postfix autohospedado en una sola IP
Type: TXT  Name: @  Value: v=spf1 ip4:1.2.3.4 -all

Termine con -all (hard-fail) una vez que haya verificado que todas las fuentes legítimas de envío están cubiertas. Si todavía no está seguro, arranque con ~all (soft-fail) y endurezca a -all tras dos semanas de reportes DMARC limpios.

§4

3) DKIM — gestionado por el vendor para SES, custom para Postal

DKIM (RFC 6376) publica la mitad pública de un keypair de firma como registro TXT en {selector}._domainkey.{domain}. El "selector" es un identificador que usted elige — específico del vendor o arbitrario. Para SES, AWS le entrega tres CNAMEs que resuelven a registros TXT gestionados por AWS (de modo que AWS pueda rotar las claves sin que usted toque el DNS):

# SES Easy DKIM — 3 CNAMEs (AWS rota claves vía estos)
Type: CNAME  Name: token1._domainkey  Value: token1.dkim.amazonses.com
Type: CNAME  Name: token2._domainkey  Value: token2.dkim.amazonses.com
Type: CNAME  Name: token3._domainkey  Value: token3.dkim.amazonses.com

Para Postal o Postfix+OpenDKIM autohospedado, usted genera el keypair localmente, configura al MTA para firmar y publica la mitad pública como TXT:

# Generar vía openssl, luego publicar la mitad .txt
Type: TXT  Name: s1._domainkey  Value: v=DKIM1; k=rsa; p=MIGfMA0G…

Sea cual sea el camino, verifique con dig TXT {selector}._domainkey.{domain} antes de dar DKIM por terminado.

§5

4) DMARC — arrancar en p=none, terminar en p=reject

DMARC (RFC 7489) va en _dmarc.{domain}. Saltarse la rampa p=none es el error más común — saltar directo a p=reject contra un dominio cuyos flujos de correo todavía no entiende del todo va a rebotar silenciosamente correo legítimo (forwarders, mailing lists, remitentes de CRM de terceros).

# Etapa 1 (semanas 1-3) — solo monitoreo
Type: TXT  Name: _dmarc  Value: v=DMARC1; p=none; rua=mailto:dmarc@yourcompany.com; pct=100; adkim=r; aspf=r
# Etapa 2 (semanas 4-5) — enforcement parcial
Type: TXT  Name: _dmarc  Value: v=DMARC1; p=quarantine; pct=10; rua=mailto:dmarc@yourcompany.com
# Etapa 3 (semana 6+) — enforcement total
Type: TXT  Name: _dmarc  Value: v=DMARC1; p=reject; pct=100; rua=mailto:dmarc@yourcompany.com

Lea los reportes agregados XML diarios que aterrizan en su buzón rua entre etapas. Herramientas como el DMARC analyzer de Postmark o Parsedmarc autohospedado los visualizan; el XML crudo es denso pero legible.

§6

5) CNAME del dominio de tracking — preservar la confianza

Por defecto, las URLs de open-pixel y click-tracking de AcelleMail vienen del dominio primario de su instalación. A los proveedores de buzones les gusta ver dominios raíz consistentes entre el From, los clics de enlace y la URL de baja — todos sobre el mismo dominio registrado. En cuanto a branding, los enlaces apuntando a tracker.suempresa.com también transmiten más confianza que los enlaces apuntando a links.acellemail.com.

# Subdominio de tracking CNAME → instalación AcelleMail
Type: CNAME  Name: track  Value: app.yourcompany.com

# Luego en el admin de AcelleMail: Settings → Tracking domain
# Set: track.yourcompany.com

Una vez que el CNAME resuelve, AcelleMail reescribe todas las URLs de click-tracking de los mensajes salientes para usarlo. El dominio del enlace de baja sigue la misma regla (y el mismo CNAME).

§7

6) MTA-STS — forzar TLS entrante

MTA-STS (RFC 8461) les dice a los demás remitentes "exija siempre TLS al entregar a mi MX". Sin él, un atacante en el camino puede degradar un handshake TLS-capaz a texto plano. Con él, el servidor remitente se niega a entregar si no se puede establecer TLS. La implementación es un único registro TXT apuntando a un archivo de policy alojado:

# Registro DNS
Type: TXT  Name: _mta-sts  Value: v=STSv1; id=20260508T120000;

# Archivo de policy alojado en https://mta-sts.yourcompany.com/.well-known/mta-sts.txt
version: STSv1
mode: enforce
mx: mail.yourcompany.com
max_age: 604800

Corra la policy en mode: testing durante la primera semana, después flipee a mode: enforce. Muchos bulk senders se saltan MTA-STS — desplegarlo es una señal de confianza gratuita.

§8

7) BIMI — logo de marca junto a los mensajes en la bandeja

BIMI (Brand Indicators for Message Identification) es el más joven de los siete y el único que todavía no es RFC finalizado, pero está soportado en producción por Gmail, Yahoo, Apple Mail, Fastmail y otros clientes. El trato: publicar un registro TXT que apunta a un logo SVG y (opcionalmente) a un Verified Mark Certificate (VMC), y los clientes que lo soportan muestran el logo junto a sus mensajes en el listado de la bandeja.

# Sin VMC (gratis, menor cobertura)
Type: TXT  Name: default._bimi  Value: v=BIMI1; l=https://yourcompany.com/bimi-logo.svg

# Con VMC (pago, cobertura total en Gmail)
Type: TXT  Name: default._bimi  Value: v=BIMI1; l=https://yourcompany.com/bimi-logo.svg; a=https://yourcompany.com/bimi-cert.pem

Precondiciones: una policy DMARC de al menos p=quarantine (BIMI no se honra bajo p=none), y el SVG debe ser SVG Tiny Portable / Secure (SVG-PS). La aceptación varía: Gmail exige un VMC pago ($1.500/año vía DigiCert / Entrust) para mostrar en el listado completo de la bandeja; Yahoo y Apple aceptan BIMI sin VMC. Se reportan habitualmente subas de open rate del 5-20% en case studies publicados.

§9

Verifique toda la cadena en 30 segundos

Después de publicar, envíese un mensaje de prueba y revise las cabeceras. Gmail web: abra el mensaje, haga clic en el menú de tres puntos, "Mostrar original". Busque:

Authentication-Results: mx.google.com;
  dkim=pass header.i=@yourcompany.com header.s=token1
  spf=pass smtp.mailfrom=yourcompany.com
  dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=yourcompany.com

Tres veredictos pass es la barra. Cualquier cosa menos — fail, softfail, neutral — significa que un registro está mal, o que el DNS todavía no propagó, o que el cuerpo del correo se está modificando en tránsito (raro). Crucífiquelo contra la spec canónica de la cabecera Authentication-Results (RFC 8601) si un veredicto es ambiguo.

Ejecute esto en su propia infraestructura.

AcelleMail es una plataforma de email autoalojada con licencia de pago único. Código fuente completo, sin precios por suscriptor.

Probar la demo en vivo