Perché validare la sintassi SPF prima di pubblicare?
Un record SPF (Sender Policy Framework) malformato può avere conseguenze immediate: email rifiutate, autenticazione disabilitata o, peggio ancora, una falsa sensazione di sicurezza. La validazione sintattica rileva questi problemi prima che impattino la tua deliverability.
Tre casi d'uso principali:
- Nuovo SPF -> Valida la struttura prima della prima pubblicazione
- Modifica SPF -> Verifica che le modifiche non introducano errori
- Diagnosi deliverability -> Conferma che la sintassi non causa i rifiuti
Come usare il validatore in 3 passaggi
Passaggio 1: Copiare il record SPF
Recupera il tuo record da:
- La tua interfaccia DNS (Aruba, Cloudflare, Route 53, ecc.)
- Uno strumento di lookup DNS
- Direttamente dal tuo editor di testo se lo stai scrivendo
Formato atteso:
v=spf1 ip4:203.0.113.0/24 include:_spf.google.com -all
Passaggio 2: Incollare nel validatore
Incolla il record completo nel modulo sopra. Lo strumento analizza automaticamente:
- ✅ Struttura base (v=spf1)
- ✅ Meccanismi (ip4, ip6, mx, a, include, exists, ptr)
- ✅ Modificatori (redirect, exp)
- ✅ Qualificatori (+, -, ~, ?)
- ✅ Direttiva finale (all)
Passaggio 2b: Testare un IP (opzionale)
Inserisci un indirizzo IP nel campo dedicato per verificare se è autorizzato dalla politica SPF:
- Pass (verde): L'IP è esplicitamente autorizzato
- Fail (rosso): L'IP è esplicitamente rifiutato
- Softfail (arancione): L'IP non è autorizzato ma non rigorosamente rifiutato
- Neutral (grigio): Nessuna corrispondenza o nessuna opinione
Lo strumento valuta i meccanismi nell'ordine (ip4, ip6, a, mx, include) conformemente alla RFC 7208 §4.6.2.
Passaggio 3: Correggere e pubblicare
Il report mostra:
- Errori (rosso): Problemi bloccanti da correggere
- Avvisi (arancione): Rischi di sicurezza o best practice
- Informazioni (blu): Dettagli sulla struttura analizzata
Correggi gli errori, poi pubblica nel tuo DNS.
Cos'è la sintassi SPF?
Un record SPF è una stringa di caratteri pubblicata in un record DNS TXT. La sua sintassi segue una struttura precisa definita dalla RFC 7208:
v=spf1 [qualificatore]meccanismo [modificatore] ... direttiva_finale
Componenti:
| Elemento | Esempi | Ruolo |
|---|---|---|
| Versione | v=spf1 | Obbligatorio, sempre primo |
| Qualificatore | +, -, ~, ? | Determina l'azione (pass, fail, softfail, neutral) |
| Meccanismo | ip4:, mx, include:, a: | Definisce i mittenti autorizzati |
| Modificatore | redirect=, exp= | Opzioni aggiuntive |
| Direttiva finale | -all, ~all, ?all | Azione predefinita per le non corrispondenze |
Cosa analizza esattamente il validatore?
Errori di sintassi
| Codice errore | Descrizione | Impatto |
|---|---|---|
missing_version | Mancante v=spf1 | SPF ignorato (permerror) |
unknown_mechanism | Meccanismo non riconosciuto | SPF non valido |
mechanism_missing_value | include: senza dominio | SPF non valido |
mechanism_invalid_value | IP o CIDR malformato | SPF non valido |
duplicate_modifier | Due redirect= | SPF non valido |
multiple_all | Multiple direttive all | SPF non valido |
Avvisi di sicurezza
| Codice | Descrizione | Rischio |
|---|---|---|
weak_qualifier | ?all (neutral) | Nessuna protezione |
permissive_all | +all | Autorizza tutti |
softfail_all | ~all senza transizione a -all | Protezione parziale |
Limiti DNS
| Codice | Descrizione | Limite RFC |
|---|---|---|
lookup_limit_exceeded | Più di 10 lookup DNS | 10 max |
void_lookup_limit_exceeded | Troppe risposte vuote | 2 max |
lookup_cycle | Ciclo di riferimento | Vietato |
Casi d'uso concreti
Caso 1: Nuovo dominio, primo SPF
Situazione: Stai configurando l'email per captaindns.com con Google Workspace.
Azione: Valida prima di pubblicare:
v=spf1 include:_spf.google.com -all
Risultato atteso:
- ✅ Sintassi valida
- ✅ 1 lookup DNS (sotto il limite di 10)
- ✅ Direttiva finale rigorosa (-all)
Caso 2: Aggiungere un nuovo servizio di marketing
Situazione: Stai aggiungendo Mailchimp al tuo SPF esistente.
SPF attuale:
v=spf1 include:_spf.google.com -all
SPF modificato:
v=spf1 include:_spf.google.com include:servers.mcsv.net -all
Validazione: Conferma che l'aggiunta non superi 10 lookup e che la sintassi rimanga valida.
Caso 3: "permerror" in produzione
Sintomo: Le tue email falliscono con SPF permerror.
Diagnosi: Incolla il record nel validatore.
Errore rilevato:
v=spf1 ip4:203.0.113.42 include: -all
Errore: mechanism_missing_value - include: senza dominio.
Correzione:
v=spf1 ip4:203.0.113.42 include:_spf.captaindns.com -all
Caso 4: Troppi lookup DNS
Sintomo: Il validatore mostra lookup_limit_exceeded.
Diagnosi: Il tuo SPF ha troppi include:
v=spf1 include:_spf.google.com include:spf.protection.outlook.com include:amazonses.com include:_spf.salesforce.com include:sendgrid.net include:mailchimp.com -all
Soluzioni:
- Sostituisci alcuni include con ip4/ip6 diretti
- Usa un sottodominio dedicato (es:
marketing.captaindns.com) - Rimuovi i servizi non utilizzati
- Usa il nostro SPF Flattener per risolvere automaticamente gli include in IP
Testare un IP contro la politica SPF
Perché testare un IP contro un record SPF?
Quando un'email viene ricevuta, il server destinatario verifica se l'IP del mittente è autorizzato dal SPF del dominio. Se l'IP non è coperto, l'email può essere rifiutata o segnalata come sospetta.
Casi d'uso comuni:
- Nuovo server di posta -> Verifica che il suo IP sia coperto prima del primo invio
- Servizio di terze parti (Mailchimp, SendGrid, SES) -> Conferma che l'include copra gli IP del provider
- Diagnosi "SPF fail" -> Identifica esattamente quale meccanismo rifiuta l'IP
- Migrazione del server -> Testa i nuovi IP prima di dismettere quelli vecchi
Come funziona il test IP?
Lo strumento valuta il record SPF meccanismo per meccanismo, nell'ordine:
- ip4/ip6: Corrispondenza diretta di IP o CIDR
- a: Risoluzione DNS del dominio, confronto con l'IP
- mx: Risoluzione dei server MX, poi dei loro IP
- include: Valutazione ricorsiva del SPF del dominio incluso
- all: Corrispondenza universale (risultato secondo il qualificatore)
Il primo meccanismo che corrisponde determina il risultato. Se nessuno corrisponde e non c'è direttiva all, il risultato è "neutral".
FAQ - Domande frequenti
D: Cos'è un record SPF?
R: SPF (Sender Policy Framework) è un record DNS TXT che elenca i server autorizzati a inviare email per il tuo dominio. Formato: v=spf1 seguito da meccanismi (ip4, mx, include) e una direttiva finale (-all, ~all).
D: Perché validare la sintassi SPF prima di pubblicare?
R: Un record SPF malformato genera un errore permanente (permerror) che può rifiutare tutte le tue email o disabilitare completamente la verifica SPF. Validare prima della pubblicazione previene interruzioni del servizio.
D: Qual è il limite di lookup DNS per SPF?
R: La RFC 7208 limita la valutazione SPF a 10 lookup DNS. Ogni include, a, mx, ptr ed exists conta. Superare questo limite genera un permerror e può far fallire l'autenticazione.
D: Cosa significa il qualificatore -all vs ~all?
R:
-all(hard fail): Rifiuta le email non autorizzate~all(soft fail): Le marca come sospette ma le accetta
Inizia con ~all per i test, poi passa a -all in produzione per la massima protezione.
D: Come correggo l'errore "too many DNS lookups"?
R:
- Sostituisci gli include con
ip4/ip6diretti - Rimuovi i meccanismi non utilizzati
- Usa sottodomini con il proprio SPF
- Evita
ptr(deprecato e costoso in lookup)
D: Posso avere più record SPF?
R: No. La RFC richiede un singolo record SPF per dominio. Più record generano un permerror. Unisci le tue policy in un unico TXT che inizi con v=spf1.
D: Lo strumento valida i domini degli include?
R: Il validatore verifica la sintassi dei domini referenziati da include e redirect. Per un'analisi completa con risoluzione DNS e conteggio ricorsivo dei lookup, usa l'Ispettore SPF.
Strumenti complementari
| Strumento | Utilità |
|---|---|
| Generatore SPF | Creare un record SPF valido dai tuoi provider email |
| Ispettore SPF | Analizzare un SPF pubblicato con risoluzione DNS completa |
| SPF Flattener | Appiattire il tuo SPF per rispettare il limite di 10 DNS lookup |
| Ispettore DKIM | Validare la tua firma DKIM |
| Ispettore DMARC | Configurare e testare la tua policy DMARC |
| Validatore DMARC | Validare la sintassi di un record DMARC prima della pubblicazione |
| Analizzatore intestazioni email | Diagnosticare SPF/DKIM/DMARC su un'email ricevuta |
Risorse utili
- RFC 7208 - Sender Policy Framework (specifica ufficiale SPF)
- Google - Configurare SPF (guida Google Workspace)
- Microsoft - SPF per Microsoft 365 (guida Outlook/M365)