Blog

Tips, guides, and privacy advice

← Back to Blog
Guida

SPF, DKIM e DMARC spiegati in parole semplici (con esempi)

Di Khaja Hussain·15 ottobre 2026·7 min read

Perché l'email ne ha bisogno

Ecco la scomoda verità sull'email: è stata progettata all'inizio degli anni '80 per una piccola rete di persone che si fidavano l'una dell'altra. Così com'è, chiunque può inviare un'email che dice di arrivare da [email protected]. Nel protocollo di base non c'è niente che lo impedisca.

SPF, DKIM e DMARC sono stati aggiunti dopo per rimediare. Insieme permettono a chi riceve l'email, come Gmail, Outlook o Yahoo, di rispondere a una domanda: questa email arriva davvero dal dominio che dichiara? Se la risposta è no, l'email finisce nello spam o viene rifiutata. E se il tuo dominio non li ha configurati, le tue email vere possono essere trattate come false.

Un paragone veloce aiuta:

  • SPF è la lista degli invitati: quali server possono inviare email per conto del tuo dominio.
  • DKIM è il sigillo di ceralacca: una firma che dimostra che l'email non è stata modificata lungo il percorso.
  • DMARC sono le istruzioni per il buttafuori: cosa fare quando un'email non supera i controlli e a chi dirlo.

SPF: la lista degli invitati

SPF (Sender Policy Framework) è una singola riga di testo che pubblichi nel DNS del tuo dominio. Elenca i server e i servizi autorizzati a inviare email a tuo nome. Quando Gmail riceve un'email dal tuo dominio, consulta quella lista e controlla se il server che l'ha inviata ci compare.

Un tipico record SPF è fatto così:

v=spf1 include:_spf.google.com include:sendgrid.net ~all

Leggendolo da sinistra a destra:

  • v=spf1: "questo è un record SPF".
  • include:_spf.google.com: Google Workspace può inviare per me.
  • include:sendgrid.net: anche SendGrid (per esempio, per le email della mia app).
  • ~all: tutto il resto probabilmente non sono io, quindi trattalo con sospetto. (-all significa "sicuramente non sono io, rifiutala".)
I due errori più comuni con SPF: avere due record SPF sullo stesso dominio (devi unirli in un'unica riga) e dimenticare un servizio. Se il tuo strumento per le newsletter o il tuo helpdesk inviano email con il tuo dominio, devono stare nella lista anche loro.

C'è anche un limite di 10 lookup DNS all'interno di un singolo record SPF. Ogni include: conta, e contano anche gli include al loro interno. Se usi molti servizi, puoi superare il limite senza accorgertene, e a quel punto SPF fallisce per tutti.

DKIM: il sigillo di ceralacca

SPF controlla da dove arriva un'email. DKIM (DomainKeys Identified Mail) controlla che l'email in sé non sia stata manomessa. Il tuo servizio email firma ogni messaggio in uscita con una chiave privata che conosce solo lui. Tu pubblichi la chiave pubblica corrispondente nel DNS, e il server che riceve l'email la usa per verificare la firma.

Se qualcuno ha modificato l'email lungo il percorso, anche solo una parola nel testo, la firma non corrisponde più. È come il sigillo di ceralacca su una lettera d'altri tempi: se il sigillo è rotto, sai che qualcuno l'ha aperta.

Un record DKIM viene pubblicato con un nome speciale, per esempio google._domainkey.yourdomain.com, e il suo valore è più o meno così:

v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAu1...

La buona notizia: non lo scrivi mai tu. Lo genera il tuo provider email e tu devi solo copiarlo nel DNS. La parola prima di ._domainkey (qui google) si chiama selettore. Serve semplicemente ad avere più chiavi, una per servizio.

DMARC: le istruzioni per il buttafuori

SPF e DKIM forniscono dei fatti al server che riceve l'email. DMARC (Domain-based Message Authentication, Reporting and Conformance) gli dice cosa fare con quei fatti. In più aggiunge una regola importante chiamata allineamento: il dominio che supera SPF o DKIM deve coincidere con il dominio che il lettore vede davvero nella riga "Da". Senza questa regola, un truffatore potrebbe superare SPF con il proprio dominio mostrando però il tuo.

Un record DMARC si trova su _dmarc.yourdomain.com ed è fatto così:

v=DMARC1; p=none; rua=mailto:[email protected]
  • p=none: solo osservare, senza bloccare ancora niente. Perfetto per iniziare.
  • p=quarantine: mandare nello spam le email che non superano i controlli.
  • p=reject: rifiutare del tutto le email che non superano i controlli. La protezione più forte.
  • rua=mailto:...: dove i destinatari devono inviarti i report riassuntivi giornalieri.

Quei report sono il tesoro nascosto. Ti mostrano tutti i server che inviano email usando il tuo dominio, compresi i servizi che avevi dimenticato e chiunque stia cercando di spacciarsi per te.

Configurarli, passo dopo passo

Diciamo che hai myshop.com, usi Google Workspace per la casella di posta e un servizio come SendGrid o Mailgun per le conferme d'ordine. Ecco l'ordine in cui lo farei io:

  1. Elenca tutto ciò che invia email con il tuo dominio: il provider della casella, il tuo sito o la tua app, lo strumento per le newsletter, l'helpdesk, il software di fatturazione. È il passaggio che tutti saltano, ed è quello che causa più problemi dopo.
  2. Crea un unico record SPF nel tuo DNS (un record TXT su myshop.com) che li includa tutti e che finisca con ~all.
  3. Attiva DKIM in ogni servizio. Ognuno ti dà un record da copiare nel DNS. Poi premi "verifica" o "avvia l'autenticazione" in quel servizio.
  4. Aggiungi un record DMARC con p=none e un indirizzo per i report, su _dmarc.myshop.com.
  5. Aspetta una o due settimane e leggi i report. Sistema tutto ciò che è legittimo ma non supera i controlli.
  6. Rendi più severa la policy passando a p=quarantine e, più avanti, a p=reject, quando sei sicuro che tutta la tua posta vera supera i controlli.
Le modifiche DNS possono impiegare da pochi minuti a un paio d'ore per propagarsi ovunque. Se un controllo fallisce subito dopo aver aggiunto un record, aspetta un po' prima di cambiare qualcosa.

Come controllarli su qualsiasi email ricevi

Non ti serve nessuno strumento. La tua app email mostra già i risultati:

  • Gmail: apri l'email, clicca sui tre puntini e poi su Mostra originale. In alto vedrai righe come SPF: PASS, DKIM: PASS e DMARC: PASS.
  • Outlook: apri il messaggio, poi View e View message details (oppure Message source), e cerca l'intestazione Authentication-Results.
  • Apple Mail: View, poi Message e infine All Headers.

Un'intestazione reale assomiglia a questa:

Authentication-Results: mx.google.com;
  dkim=pass header.d=myshop.com;
  spf=pass smtp.mailfrom=myshop.com;
  dmarc=pass (p=QUARANTINE) header.from=myshop.com

Tre "pass" e domini che coincidono: quell'email è autentica. Se vedi fail, o i domini non corrispondono al mittente che vedi, fai attenzione. È uno dei campanelli d'allarme di cui parlo in come riconoscere un'email di phishing.

Se stai configurando il tuo dominio, un modo veloce per fare una prova è inviare un'email a una casella di posta temporanea e a un indirizzo Gmail, poi controllare le intestazioni della copia su Gmail. Ci vogliono due minuti e vedi esattamente quello che vede il resto del mondo.

Problemi comuni e soluzioni rapide

  • "SPF: softfail" o "neutral": il server che ha inviato l'email non è nel tuo record SPF. Aggiungi il servizio con l'include: che ti indica.
  • "SPF permerror": di solito ci sono due record SPF o più di 10 lookup. Uniscili in un unico record e togli i servizi che non usi più.
  • "DKIM: fail" dopo aver modificato un template: qualcosa ha riscritto l'email dopo la firma (lo fanno alcuni servizi di inoltro e i piè di pagina aggiunti alle email). Invia direttamente e riprova.
  • DMARC fallisce anche se SPF passa: è l'allineamento. SPF è passato per il dominio del tuo servizio di invio, non per il tuo. Attiva DKIM con il tuo dominio in quel servizio, oppure imposta un dominio di return-path personalizzato.
  • Le email finiscono ancora nello spam anche se tutto passa: l'autenticazione dimostra chi sei, non che la gente voglia ricevere le tue email. Contano anche il contenuto, la reputazione di invio e il tasso di segnalazioni. Ne parlo meglio in perché le email delle app finiscono nello spam.

Servono davvero tutti e tre?

Sì. Dal 2024 Gmail e Yahoo richiedono SPF, DKIM e un record DMARC a chiunque invii email in grandi volumi, e anche i piccoli mittenti ottengono un recapito molto migliore con tutti e tre attivi. Soprattutto, DMARC con p=reject è ciò che impedisce ai truffatori di inviare email false a tuo nome ai tuoi stessi clienti.

La configurazione richiede un pomeriggio. Dopo, protegge il tuo dominio in silenzio, ogni singolo giorno. Se hai un dominio e continui a rimandare, questo è il tuo segnale. Inizia oggi con p=none. Potrai renderla più severa in seguito.