Tutorial · 12 min di lettura

I 7 record DNS che ogni mittente email self-hosted deve avere

Di AcelleMail Team May 8, 2026 12 min di lettura
tutorial deliverability

Un riferimento DNS copia-e-incolla: SPF, DKIM, DMARC, MX, BIMI, MTA-STS e un CNAME per il dominio di tracking. Sintassi concreta per Cloudflare e Route53, ordine di pubblicazione e cosa fa davvero ciascun record.

§1

I sette record, in ordine di pubblicazione

L'email è atipica: un setup mittente completo prevede sette record DNS distinti, suddivisi tra tre o quattro tipologie. Ne ometta uno e i messaggi continueranno a fluire, ma i mailbox provider La declasseranno silenziosamente nella cartella spam. Pubblichi tutti e sette e supererà la soglia "tutto quello che chiede Google" descritta in /guide/email-deliverability.

L'ordine conta: SPF e DKIM devono atterrare prima che il DMARC inizi a far rispettare l'allineamento, altrimenti la posta legittima finisce in quarantena. La regola universale tra i vendor è anche "aspetti che il DNS si propaghi" — lasci passare almeno 30 minuti tra la pubblicazione di un record e la richiesta al mailbox provider di rifare il check.

#RecordScopoSpec
1MXDove va la posta in entrata di questo dominioRFC 1035 §3.3.9
2SPF (TXT)IP di invio autorizzatiRFC 7208
3DKIM (TXT)Chiave pubblica di firmaRFC 6376
4DMARC (TXT)Policy in caso di fallimento autenticazione + reportisticaRFC 7489
5Tracking (CNAME)Tracker di click e open sotto il Suo dominioRFC 1035
6MTA-STSForza TLS sulla posta in entrataRFC 8461
7BIMI (TXT)Logo brand accanto ai messaggi in inboxdraft-blank-ietf-bimi

§2

1) MX — anche se non riceve molta posta

I record MX (RFC 1035 §3.3.9) dicono al mondo dove consegnare la posta in entrata per il Suo dominio. Anche se il Suo dominio mittente è "solo outbound" (non legge le risposte su di esso), un record MX è comunque richiesto — molti mailbox provider declassano la reputazione dei domini senza MX, sulla teoria che i mittenti legittimi accettano risposte. Basta un singolo record che punta a un qualsiasi mail server raggiungibile, anche se quel server consegna soltanto a una mailbox postmaster.

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

§3

2) SPF — un TXT, attenzione al conteggio dei lookup

SPF (RFC 7208) è un singolo record TXT che elenca quali IP sono autorizzati a inviare per il dominio. La regola rigida: il totale dei lookup DNS ricorsivi deve restare sotto 10 (RFC 7208 §4.6.4). Ogni include: ne consuma uno; gli include annidati contano cumulativamente. I meccanismi ip4: / ip6: costano zero lookup, quindi collassi i vecchi include in range IP espliciti se il conteggio cresce.

# Per Amazon SES (accoppiata consigliata)
Type: TXT  Name: @  Value: v=spf1 include:amazonses.com -all
# Per Postal/Postfix self-hosted su un singolo IP
Type: TXT  Name: @  Value: v=spf1 ip4:1.2.3.4 -all

Termini con -all (hard-fail) una volta verificato che tutte le sorgenti di invio legittime sono coperte. Se non è ancora sicuro, parta con ~all (soft-fail) e stringa a -all dopo due settimane di report DMARC puliti.

§4

3) DKIM — vendor-managed per SES, custom per Postal

DKIM (RFC 6376) pubblica la metà pubblica di una keypair di firma come record TXT su {selector}._domainkey.{domain}. Il "selector" è un identificatore a Sua scelta — vendor-specifico o arbitrario. Per SES, AWS Le fornisce tre CNAME che si risolvono in record TXT gestiti da AWS (così AWS può ruotare le chiavi senza che Lei tocchi il DNS):

# SES Easy DKIM — 3 CNAME (AWS ruota le chiavi tramite questi)
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

Per Postal o Postfix+OpenDKIM self-hosted, genera la keypair localmente, configura l'MTA per firmare e pubblica la metà pubblica come TXT:

# Generi via openssl, poi pubblichi la metà .txt
Type: TXT  Name: s1._domainkey  Value: v=DKIM1; k=rsa; p=MIGfMA0G…

Qualunque sia il path, verifichi con dig TXT {selector}._domainkey.{domain} prima di dichiarare DKIM completato.

§5

4) DMARC — parta da p=none, arrivi a p=reject

DMARC (RFC 7489) sta su _dmarc.{domain}. Saltare la rampa p=none è l'errore più frequente — saltare dritti a p=reject su un dominio i cui flussi di posta non sono ancora compresi a fondo farà silenziosamente bouncing posta legittima (forwarder, mailing list, mittenti su CRM di terze parti).

# Stage 1 (settimane 1-3) — solo monitoraggio
Type: TXT  Name: _dmarc  Value: v=DMARC1; p=none; rua=mailto:dmarc@suaazienda.com; pct=100; adkim=r; aspf=r
# Stage 2 (settimane 4-5) — enforcement parziale
Type: TXT  Name: _dmarc  Value: v=DMARC1; p=quarantine; pct=10; rua=mailto:dmarc@suaazienda.com
# Stage 3 (settimana 6+) — enforcement completo
Type: TXT  Name: _dmarc  Value: v=DMARC1; p=reject; pct=100; rua=mailto:dmarc@suaazienda.com

Legga i report XML aggregati giornalieri che arrivano nella Sua mailbox rua tra uno stage e l'altro. Strumenti come il DMARC analyzer di Postmark o Parsedmarc self-hosted li visualizzano; l'XML nudo è denso ma leggibile.

§6

5) CNAME del dominio di tracking — preservi la fiducia

Di default, le URL di open-pixel e click-tracking di AcelleMail partono dal dominio primario della Sua installazione. I mailbox provider preferiscono vedere root domain coerenti tra il From, i click sui link e l'URL di disiscrizione — tutto sullo stesso dominio registrato. Dal punto di vista del branding, anche i link che puntano a tracker.suaazienda.com trasmettono più fiducia di link che puntano a links.acellemail.com.

# CNAME del sottodominio di tracking → installazione AcelleMail
Type: CNAME  Name: track  Value: app.suaazienda.com

# Poi nell'admin di AcelleMail: Settings → Tracking domain
# Imposti: track.suaazienda.com

Una volta che il CNAME si risolve, AcelleMail riscrive tutte le URL di click-tracking nei messaggi in uscita per usarlo. Il dominio del link di disiscrizione segue la stessa regola (e lo stesso CNAME).

§7

6) MTA-STS — forzi il TLS in entrata

MTA-STS (RFC 8461) dice agli altri mittenti "richiedere sempre TLS quando consegnano al mio MX". Senza, un attaccante sul percorso può degradare un handshake TLS-capable a cleartext. Con MTA-STS, il server mittente si rifiuta di consegnare se non può stabilire TLS. L'implementazione è un record TXT che punta a un file di policy ospitato:

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

# File policy ospitato su https://mta-sts.suaazienda.com/.well-known/mta-sts.txt
version: STSv1
mode: enforce
mx: mail.suaazienda.com
max_age: 604800

Faccia girare la policy in mode: testing per la prima settimana, poi passi a mode: enforce. Molti bulk sender saltano MTA-STS — deployarlo è un segnale di fiducia gratuito.

§8

7) BIMI — logo brand accanto ai messaggi in inbox

BIMI (Brand Indicators for Message Identification) è il più giovane dei sette e l'unico non ancora un RFC finalizzato, ma è supportato in produzione da Gmail, Yahoo, Apple Mail, Fastmail e altri client. Il patto: pubblichi un record TXT che punta a un logo SVG e (opzionalmente) a un Verified Mark Certificate (VMC), e i client supportati mostreranno il logo accanto ai Suoi messaggi nella lista inbox.

# Senza VMC (gratuito, copertura più bassa)
Type: TXT  Name: default._bimi  Value: v=BIMI1; l=https://suaazienda.com/bimi-logo.svg

# Con VMC (a pagamento, copertura Gmail completa)
Type: TXT  Name: default._bimi  Value: v=BIMI1; l=https://suaazienda.com/bimi-logo.svg; a=https://suaazienda.com/bimi-cert.pem

Precondizioni: una policy DMARC almeno a p=quarantine (BIMI non è onorato sotto p=none), e l'SVG deve essere SVG Tiny Portable / Secure (SVG-PS). L'accettazione varia: Gmail richiede un VMC a pagamento ($1.500/anno via DigiCert / Entrust) per la visualizzazione completa nella lista inbox; Yahoo e Apple accettano BIMI senza VMC. Aumenti di open rate del 5-20% sono comunemente riportati nei case study pubblicati.

§9

Verifichi l'intera catena in 30 secondi

Dopo la pubblicazione, si invii un messaggio di test e controlli gli header. Gmail web: apra il messaggio, clicchi il menu tre puntini, "Mostra originale". Cerchi:

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

Tre verdetti pass sono la soglia. Qualsiasi cosa meno — fail, softfail, neutral — significa che un record è sbagliato, o il DNS non si è ancora propagato, o il body della posta viene modificato in transito (raro). Faccia il cross-check con la spec canonica Authentication-Results header (RFC 8601) se un verdetto è ambiguo.

Mettilo in esecuzione sulla tua infrastruttura.

AcelleMail è una piattaforma email self-hosted con licenza una tantum. Codice sorgente completo, niente prezzi per iscritto.

Prova la demo live