Cos'è SPF?
SPF (Sender Policy Framework) è un metodo di autenticazione e-mail che consente ai proprietari di un dominio di specificare quali server di posta sono autorizzati a inviare messaggi per loro conto. I server di posta riceventi controllano i record SPF per verificare che un'e-mail proveniente dal dominio abbia origine da una fonte autorizzata.
Perché SPF è importante
Senza SPF, chiunque può inviare e-mail che sembrano provenire dal tuo dominio (spoofing). SPF aiuta a:
- Prevenire il phishing: rende più difficile impersonare il tuo dominio.
- Migliorare la recapitabilità: i provider si fidano maggiormente dei messaggi autenticati.
- Proteggere la reputazione: lo spam contraffatto non danneggia la reputazione del dominio.
- Abilitare DMARC: SPF è un elemento fondamentale delle politiche DMARC.
Come funziona SPF
1. Il proprietario del dominio pubblica un record SPF (TXT) nel DNS.
2. Il server di posta del mittente invia un'e-mail dichiarando di provenire da @example.com.
3. Il server di posta del destinatario cerca il record SPF di example.com.
4. Il server verifica se l'IP di invio è autorizzato.
5. Il risultato viene applicato: pass, fail, softfail oppure neutral.
Sintassi del record SPF
Un record SPF è un record TXT con un formato specifico:
v=spf1 [mechanisms] [qualifier]all
Esempi di record SPF
Base (un solo server di posta):v=spf1 ip4:203.0.113.50 -all
Google Workspace:
v=spf1 include:_spf.google.com ~all
Più servizi:
v=spf1 include:_spf.google.com include:sendgrid.net ip4:203.0.113.50 -all
Meccanismi SPF
| Meccanismo | Descrizione | Esempio |
|---|---|---|
| ip4 | Indirizzo o intervallo IPv4 | ip4:203.0.113.0/24 |
| ip6 | Indirizzo o intervallo IPv6 | ip6:2001:db8::/32 |
| include | Include l'SPF di un altro dominio | include:_spf.google.com |
| a | Indirizzi IP del record A del dominio | a:mail.example.com |
| mx | Indirizzi IP dei server MX del dominio | mx |
| all | Corrisponde a tutto, di solito per ultimo | -all, ~all, ?all |
Qualificatori
| Qualificatore | Risultato | Significato |
|---|---|---|
| + (predefinito) | Pass | Mittente autorizzato |
| - | Fail | Non autorizzato, rifiuta |
| ~ | SoftFail | Probabilmente non autorizzato, accetta ma segnala |
| ? | Neutral | Nessuna dichiarazione di policy |
Procedure consigliate per implementare SPF
Inizia con SoftFail
Quando implementi SPF per la prima volta, usa ~all per evitare di rifiutare e-mail legittime:
v=spf1 include:_spf.google.com ~all
Passa a Fail
Dopo aver verificato che tutto funzioni, passa a -all per applicare una politica rigorosa:
v=spf1 include:_spf.google.com -all
Mantieni le ricerche DNS sotto 10
SPF consente al massimo 10 ricerche DNS (include, a, mx, redirect, exists). Superare questo limite causa errori SPF.
# Counts as DNS lookups:
include:_spf.google.com # 1 (plus nested includes)
a:mail.example.com # 1
mx # 1
# Does NOT count:
ip4:203.0.113.50 # 0
ip6:2001:db8::1 # 0
Un solo record SPF
Più record SPF causano errori di validazione. Riunisci tutti i meccanismi in un unico record:
# Wrong - two SPF records
v=spf1 include:_spf.google.com ~all
v=spf1 include:sendgrid.net ~all
# Correct - combined
v=spf1 include:_spf.google.com include:sendgrid.net ~all
Controllo dei record SPF
Con dig:dig example.com TXT | grep spf
Con DomScan:
curl "https://domscan.net/v1/health?domain=example.com"
# Returns hasSPF status
Validatori online: MXToolbox, mail-tester.com.
Problemi comuni di SPF
Troppe ricerche DNS
Sintomo: SPF permerror.
Soluzione: appiattisci gli include o usa meno servizi esterni.
Servizi di terze parti mancanti
Sintomo: un'e-mail legittima non supera SPF.
Soluzione: aggiungi include/ip4 per tutti i servizi di invio, come strumenti di marketing e CRM.
SPF troppo permissivo
Sintomo: un'e-mail contraffatta supera SPF.
Problema: uso di +all o inclusione di troppi servizi.
Soluzione: verifica e limita i mittenti autorizzati.
SPF è essenziale per l'autenticazione e-mail, ma funziona al meglio insieme a DKIM e DMARC per una protezione completa.