SPF, DKIM, DMARC: guida pratica

SPF, DKIM, DMARC: guida pratica (+ esempi copia-incolla) — Pacesoft

Obiettivo: configurare in modo corretto SPF, DKIM e DMARC con esempi “copia-incolla” per i provider più comuni. Ordine consigliato: 1) SPF2) DKIM3) DMARC.

Indice

Tip: dopo ogni modifica DNS, attendi la propagazione (da pochi minuti a qualche ora).

Cos’è cosa (in 30 secondi)

  • SPF: elenca da quali server si può inviare per il tuo dominio (record TXT con v=spf1).
  • DKIM: firma le email con chiave privata; pubblichi la chiave pubblica nel DNS (record TXT o CNAME→TXT a seconda del provider).
  • DMARC: decide cosa fare se SPF/DKIM falliscono (none/quarantine/reject) e invia report (rua/ruf).

1) SPF: esempi pronti

Un solo record TXT sul dominio radice (es. example.com). Evita di creare più record SPF: unisci tutto in un’unica riga.

Provider singolo

  • Google Workspace
    v=spf1 include:_spf.google.com ~all
  • Microsoft 365
    v=spf1 include:spf.protection.outlook.com -all
  • SendGrid
    v=spf1 include:sendgrid.net -all
  • Mailgun
    v=spf1 include:mailgun.org ~all
  • Amazon SES
    v=spf1 include:amazonses.com -all (se usi custom MAIL FROM, ricordati lo SPF anche sul sottodominio)

Più sorgenti insieme (unico record)

v=spf1 include:_spf.google.com include:spf.protection.outlook.com include:sendgrid.net ip4:203.0.113.7 ~all

Note: ~all = softfail (tollerante); -all = fail duro. SPF ha max 10 lookup (include/a/mx/ptr). Se li superi, riduci i servizi o valuta un “flattening” controllato.

2) DKIM: cosa pubblicare

Per DKIM ti serve un selector. Il record si pubblica come <selector>._domainkey.example.com.

TXT diretto (es. Google Workspace)

Host (Nome):  google._domainkey
Tipo:         TXT
Valore:       v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A... (chiave pubblica)

CNAME → TXT (es. Microsoft 365, SendGrid)

Host:   selector1._domainkey
Tipo:   CNAME
Valore: selector1-xxxxx._domainkey.tenant.onmicrosoft.com.

Host:   selector2._domainkey
Tipo:   CNAME
Valore: selector2-xxxxx._domainkey.tenant.onmicrosoft.com.

Dopo la pubblicazione, attiva la firma DKIM nella console del provider (Google Admin / M365 Defender / SendGrid / Mailgun / SES).

3) DMARC: partire soft, arrivare a reject

Record TXT su _dmarc.example.com. Parti in monitoraggio, poi aumenta l’enforcement.

Fase 1 — solo monitoraggio

Host:   _dmarc
Tipo:   TXT
Valore: v=DMARC1; p=none; rua=mailto:dmarc-aggregate@example.com; ruf=mailto:dmarc-forensic@example.com; fo=1; adkim=s; aspf=s

Fase 2 — quarantena graduale

v=DMARC1; p=quarantine; pct=50; rua=mailto:dmarc-aggregate@example.com; fo=1; adkim=s; aspf=s

Fase 3 — reject

v=DMARC1; p=reject; rua=mailto:dmarc-aggregate@example.com; fo=1; adkim=s; aspf=s

adkim/aspf=s = allineamento “strict” (dominio esatto). rua = report aggregati (XML compressi), ruf = report forensics (molto dettagliati, non sempre inviati).

Checklist veloce

  • SPF: un solo TXT, tutte le sorgenti, passa a -all quando sei sicuro.
  • DKIM: record corretti pubbl., firma attiva nel pannello.
  • DMARC: parti da p=none con rua, poi quarantinereject.
  • Allineamento: fai in modo che il From: sia allineato al dominio firmato DKIM e/o autorizzato SPF.

Debug: errori comuni

  • Doppio record SPF: uniscili in un solo v=spf1 ....
  • SPF > 10 lookup: rimuovi include superflui o usa IP diretti (ip4:, ip6:).
  • DKIM non valido: selector errato, CNAME non risolto o firma non “attivata” nel provider.
  • DMARC senza report: controlla le mailbox in rua/ruf e i filtri che bloccano gli XML compressi.

Strumenti utili

  • Email Cleaner & MX Check — pulizia e verifica DNS/MX di liste.
  • Verificatori pubblici: MXToolbox / dmarcian / EasyDMARC (per analizzare i report rua).

Fonti rapide

Google Workspace (SPF: _spf.google.com) • Microsoft 365 (SPF: spf.protection.outlook.com) • SendGrid (include:sendgrid.net) • Mailgun (include:mailgun.org) • Amazon SES (MAIL FROM + SPF). DKIM/DMARC: guide ufficiali Google/Microsoft.

← Torna all'elenco