SPF, DKIM e DMARC sono i tre record DNS che decidono se le vostre email arrivano o finiscono nello spam. La maggior parte delle guide li riduce a tre comandi copia-incolla. Quello che succede dopo, quando arrivano i messaggi rifiutati o gli spoofer iniziano a impersonare il vostro dominio, lo lasciano gestire a voi.

Questa guida è scritta per chi gestisce davvero un tenant Microsoft 365 e ha bisogno di sapere non solo cosa mettere nel DNS, ma perché. Negli ultimi dieci anni abbiamo configurato questi record su circa duecento ambienti. La struttura delle prime righe è sempre la stessa. È quello che viene dopo — i sender legittimi che dimenticate, i sub-domain non protetti, i sistemi terzi che firmano male — che fa la differenza fra una configurazione che funziona e una che sembra funzionare.

Cosa fa ognuno dei tre

Prima di toccare il DNS conviene chiarire i ruoli. I tre record fanno cose diverse e rispondono a domande diverse.

I primi due dicono al destinatario qualcosa sulla legittimità del mittente. Il terzo dice cosa farne. SPF e DKIM da soli non bastano: senza DMARC il destinatario è libero di interpretare i risultati come vuole — e tipicamente fa il minimo indispensabile.

Nota tecnica

DMARC introduce anche il concetto di alignment: il dominio nell'header From visibile all'utente deve corrispondere (in modo strict o relaxed) al dominio autenticato da SPF o DKIM. È la regola che blocca lo spoofing — il motivo per cui un attaccante non può inviare email che dichiarano From: ceo@vostro-dominio.it anche se ha un proprio SPF/DKIM valido sul suo dominio.

SPF — il record che dichiara chi può inviare

SPF è un record TXT pubblicato sul dominio. La sintassi è semplice: una serie di meccanismi (include, ip4, ip6, a, mx) seguita da un qualificatore finale che dice al destinatario cosa fare se nessuno matcha.

Per un tenant Microsoft 365 base, il record SPF minimo è:

DNS · TXT record · @SPF
v=spf1 include:spf.protection.outlook.com -all

Il -all finale (hard fail) significa: tutto ciò che non rientra nelle regole sopra deve essere rifiutato. Il ~all (soft fail) è una versione più permissiva — tipicamente i destinatari lo marcano come spam ma non lo rifiutano. La regola: usate -all quando siete sicuri di aver elencato tutti i sender legittimi, ~all durante la transizione.

Dove si rompono le configurazioni SPF

Quasi sempre nello stesso punto: i sender dimenticati. Sistemi che inviano email per conto vostro e che nessuno ha pensato di includere.

Ogni sender che invia da @vostro-dominio.it e non è nell'SPF inizierà a finire nello spam. Quasi tutti i sistemi SaaS forniscono un proprio include: da aggiungere. La prima azione, prima di pubblicare un SPF restrittivo, è fare l'inventario completo dei sender.

Limite tecnico SPF

SPF ha un limite hard di 10 lookup DNS. Ogni include, a, mx conta. Superare i 10 lookup invalida l'intero record e tutti i sender vengono trattati come non-autorizzati. È una delle cause più comuni di deliverability che improvvisamente smette di funzionare dopo aver aggiunto "ancora un sender". Per superare il limite si usa SPF flattening — ma è un workaround, non una soluzione.

DKIM — la firma crittografica

DKIM funziona in modo diverso da SPF. Non dichiara chi può inviare; firma il contenuto. Quando un server di posta invia un'email, calcola un hash di alcuni header (e opzionalmente del body) e lo firma con una chiave privata. Il destinatario recupera la chiave pubblica dal DNS del dominio mittente e verifica la firma.

Su Microsoft 365 DKIM si attiva da Microsoft Defender Portal → Email & collaboration → Policies & rules → DKIM. Per ogni dominio accettato si pubblicano due record CNAME nel DNS:

DNS · CNAME records · SelectorsDKIM
selector1._domainkey   CNAME   selector1-vostro-dominio-it._domainkey.tenant.onmicrosoft.com
selector2._domainkey   CNAME   selector2-vostro-dominio-it._domainkey.tenant.onmicrosoft.com

I due selector permettono la rotazione delle chiavi senza downtime. Una volta pubblicati i CNAME e propagati (qualche minuto, raramente oltre l'ora), si torna nel portale e si abilita la firma per quel dominio.

Microsoft di default firma con chiavi a 2048 bit dal 2023. Se vedete ancora chiavi a 1024 bit su un tenant vecchio, vanno rigenerate — alcuni destinatari iniziano a rifiutarle.

I sender terzi e il loro DKIM

Quando un sistema terzo (Mailchimp, HubSpot, ecc.) firma email che dichiarano From: nome@vostro-dominio.it, deve usare un proprio selector DKIM sul vostro dominio. Tipicamente vi forniscono uno o più CNAME da pubblicare. Senza quei CNAME, la firma DKIM di quel sender non si allinea con il vostro dominio e DMARC non passa, anche se l'email è perfettamente legittima.

Avete bisogno di sistemare il mailflow del vostro tenant? Il servizio Mailflow & Deliverability copre proprio queste configurazioni, con audit prima e documentazione dopo. Approfondisci

DMARC — la regola che lega tutto

DMARC è il record che trasforma SPF e DKIM da segnali a strumenti operativi. È un singolo record TXT pubblicato su _dmarc.vostro-dominio.it. La struttura minima è:

DNS · TXT record · _dmarcDMARC — fase monitoring
v=DMARC1; p=none; rua=mailto:dmarc-reports@vostro-dominio.it; fo=1

Decomponiamo i tag:

La fase di monitoring esiste per un motivo

L'errore più comune che vediamo è passare direttamente a p=reject "tanto è la configurazione corretta". È vero che reject è la policy finale corretta. Non è vero che ci si arrivi senza fasi intermedie.

Per due o tre settimane lasciate p=none e leggete i report aggregati. Vi diranno:

  1. Da quali IP arrivano email che dichiarano il vostro dominio
  2. Quante di queste passano SPF e DKIM allineati al vostro dominio
  3. Quante falliscono — e quali sono legittime ma mal configurate

I tool che vi consigliamo per leggere i report sono Postmark DMARC, Valimail Monitor o dmarcian (esistono piani gratuiti). I report grezzi sono XML — leggibili ma non comodi.

Gli errori che troviamo negli audit

Quando arriviamo su un ambiente che ha già "configurato" SPF, DKIM e DMARC, questi sono i pattern ricorrenti, in ordine di frequenza.

1. SPF con ~all in produzione da anni

Configurato durante una migrazione, "temporaneamente" messo a soft fail, mai aggiornato. Risultato: spoofer occasionali, ma niente di grave perché DMARC compensa. Va portato a -all quando l'inventario sender è completo.

2. DMARC fermo a p=none

Pubblicato anni fa per "vedere cosa succede", nessuno ha mai letto i report, nessuno ha mai promosso la policy. Tecnicamente conformi, operativamente esposti. Lo spoofing del dominio non viene bloccato — solo riportato a qualcuno che non legge.

3. Sub-domain non protetti

SPF e DMARC pubblicati sul dominio root azienda.it, niente sui sotto-domini news.azienda.it, booking.azienda.it, ecc. Lo spoofer prova From: support@news.azienda.it e passa. Soluzione: aggiungere sp=reject al record DMARC root (policy per i sub-domain non esplicitamente configurati).

4. Report DMARC inviati a una casella morta

L'indirizzo rua= punta a una casella che nessuno controlla — o peggio, a una casella che non esiste e bouncia. I report rimbalzano, voi perdete visibilità su qualunque cosa stia succedendo al vostro mailflow.

5. Selettori DKIM scaduti o dirottati

Vecchi selector di sistemi non più in uso che ancora puntano a chiavi pubbliche. Non rompono nulla, ma sporcano il DNS e nei casi peggiori restano firmati da chiavi compromesse. Vanno rimossi.

Come passare a p=reject senza bloccare nessuno

Il percorso che seguiamo ha quattro tappe ben definite. Non è veloce: tre o quattro settimane in totale per un dominio medio. Ma è l'unico modo che abbiamo trovato per arrivare all'enforcement senza incidenti.

Fase 1 — Inventario (giorni 1–3)

Mappare tutti i sender legittimi. CRM, ERP, marketing automation, sistemi interni, ticketing, qualunque cosa invii con @vostro-dominio.it. Aggiungere ognuno all'SPF e configurare DKIM dove possibile.

Fase 2 — Monitoring (giorni 4–18)

Pubblicare DMARC con p=none, attivare i report aggregati. Per due settimane non si tocca nulla — si guarda. Si scoprono i sender dimenticati, i sub-domain spoofati, gli errori di configurazione DKIM dei sistemi terzi.

Fase 3 — Quarantine (giorni 19–25)

Quando i report mostrano una percentuale di pass DMARC superiore al 98% per i sender legittimi, si passa a p=quarantine; pct=25. La pct applica la policy solo a una percentuale di traffico — un canary deploy. Si monitora una settimana, si alza la percentuale a 50, 75, 100.

Fase 4 — Reject (giorno 26 in poi)

Si passa a p=reject. A questo punto le email di chi tenta lo spoofing del vostro dominio vengono rifiutate dal destinatario prima ancora di arrivare nella casella spam. Aggiungere anche sp=reject per i sub-domain non protetti esplicitamente.

Quando non funziona

Esistono scenari in cui p=reject non è raggiungibile in tempi brevi: organizzazioni con dozzine di sistemi legacy che firmano da indirizzi del dominio, mailing list che modificano il body (rompono DKIM), forwarding interno che spezza l'alignment. Per questi casi servono ARC (Authenticated Received Chain) o l'isolamento delle email automatiche su un sotto-dominio dedicato. È normale arrivare a p=quarantine e fermarsi lì per qualche mese.

Una configurazione corretta non si pubblica una volta sola. SPF, DKIM e DMARC vanno mantenuti — quando si aggiunge un sender, quando si cambia provider, quando si lancia un nuovo sub-domain. Il lavoro che si fa una volta protegge il dominio; il lavoro che si fa ogni volta che cambia qualcosa protegge la deliverability nel tempo.

SPF, DKIM e DMARC configurati correttamente sono solo una parte del mailflow. Il servizio Mailflow & Deliverability di Elethos copre anche connettori, regole di trasporto e reputazione IP.
Scopri il servizio
SPF, DKIM and DMARC configured correctly in your tenant. See the mailflow service.
Mailflow & Deliverability
FAQ

Frequently asked questions

Can DMARC block legitimate emails?

Yes, if activated hastily with p=reject policy without first verifying all sending sources. The correct procedure is: 1) start with p=none for monitoring only; 2) analyse DMARC reports for 2-4 weeks; 3) move to p=quarantine; 4) reach p=reject only when 98%+ of legitimate emails pass authentication. Skipping these steps blocks newsletters, CRMs and billing systems.

Are SPF and DKIM enough without DMARC?

No. SPF verifies the sending server, DKIM cryptographically signs the email, but neither tells the recipient what to do if verification fails. DMARC closes this loop: it instructs receiving servers to reject, quarantine or accept emails that fail SPF or DKIM. Without DMARC, phishing using your domain is possible.

How long does it take to set up DMARC on Microsoft 365?

The technical configuration of SPF and DKIM on M365 takes 20-30 minutes. Adding the DMARC record with p=none is equally quick. The real time is the pre-enforcement monitoring period: at least 2-4 weeks of DMARC report analysis before moving to restrictive policies. Reports arrive daily at the email address configured in the record.