Vai al contenuto principale

SPF PermError: la guida completa per capire, diagnosticare e correggere questo errore

Di CaptainDNS
Pubblicato il 4 marzo 2026

Schema delle 6 cause di un SPF PermError con albero diagnostico e indicatori di errore
TL;DR
  • Un SPF PermError è un errore permanente che rende il tuo record SPF non valido e provoca il rifiuto delle tue email
  • Le 6 cause: superamento dei 10 DNS lookups, record SPF multipli, errori di sintassi, void lookups > 2, redirect non valido, includes circolari
  • Il PermError fa fallire DMARC a cascata: se anche DKIM fallisce, le tue email vengono rifiutate o messe nello spam
  • Diagnostica in 6 passaggi: verificare i duplicati, la sintassi, il contatore dei lookups, i void lookups, il redirect e i loop
  • Ogni causa ha una correzione specifica: fusione, riscrittura, flattening, rimozione dei meccanismi non validi

Il tuo monitoraggio DMARC mostra improvvisamente centinaia di risultati permerror per il tuo dominio. Le tue email legittime vengono rifiutate da Gmail, Outlook e Yahoo. Eppure non hai modificato nulla di recente nella configurazione SPF.

Il SPF PermError è uno degli errori più comuni e meno compresi dell'autenticazione email. A differenza di un semplice fallimento SPF (fail o softfail), il PermError significa che il tuo record è strutturalmente non valido: i server di ricezione non riescono nemmeno a valutarlo. E le cause sono molteplici, dal superamento del limite di 10 lookups a un semplice errore di sintassi.

Questa guida illustra le 6 cause possibili di un SPF PermError, spiega come identificare con precisione quale colpisce il tuo dominio e fornisce le correzioni adatte a ciascuna situazione.

Cos'è un SPF PermError?

Definizione secondo la RFC 7208

La RFC 7208, sezione 2.6.7 definisce il risultato permerror come un errore permanente nella valutazione SPF. Questo risultato viene restituito quando il record SPF non può essere correttamente interpretato dal server di ricezione.

A differenza degli altri risultati SPF (pass, fail, softfail, neutral), il PermError indica un problema nella struttura del record, non nell'autorizzazione del mittente. Il record è corrotto e nessuna decisione di autorizzazione può essere presa.

Differenza tra PermError e TempError

RisultatoTipoCausaAzione
PermErrorErrore permanenteRecord SPF non validoCorrezione obbligatoria da parte dell'amministratore
TempErrorErrore temporaneoTimeout DNS, server non disponibileRisoluzione automatica, nuovo tentativo
failRisultato normaleIP non autorizzatoVerificare il mittente
softfailRisultato normaleIP non autorizzato (modalità permissiva)Accettato con contrassegno

Il TempError è transitorio: un server DNS momentaneamente non disponibile può provocarlo. Il PermError, invece, persiste finché il record non viene corretto. Ogni email inviata dal tuo dominio genera lo stesso errore.

Le 6 cause di un SPF PermError

Causa 1: Superamento del limite di 10 DNS lookups

È la causa più frequente. La RFC 7208 limita a 10 il numero di query DNS durante la valutazione SPF. I meccanismi include:, a, mx, redirect ed exists contano ciascuno come un lookup. All'11esimo lookup, il server restituisce immediatamente permerror.

# Esempio: 12 lookups (permerror)
v=spf1 include:_spf.google.com include:sendgrid.net include:servers.mcsv.net include:spf.brevo.com include:spf.protection.outlook.com mx ~all

Con Google Workspace (4 lookups), SendGrid (2), Mailchimp (1), Brevo (2), Microsoft 365 (2) e un MX (1), il totale raggiunge 12. La prima guida di questa serie illustra i metodi per risolvere questo problema specifico.

Causa 2: Più record SPF sullo stesso dominio

La RFC 7208 impone che un dominio pubblichi un solo record TXT che inizia con v=spf1. Se la tua zona DNS contiene due record SPF, il risultato è sistematicamente permerror.

# ERRATO: due record SPF (permerror)
captaindns.com.  TXT  "v=spf1 include:_spf.google.com ~all"
captaindns.com.  TXT  "v=spf1 include:sendgrid.net ~all"

# CORRETTO: un solo record unificato
captaindns.com.  TXT  "v=spf1 include:_spf.google.com include:sendgrid.net ~all"

Questo errore si verifica spesso quando un nuovo servizio viene aggiunto copiando e incollando il record fornito dal provider, senza unificarlo con quello esistente.

Causa 3: Errori di sintassi

Un errore di battitura, uno spazio in più o un meccanismo scritto male rendono il record non valido:

ErroreEsempioCorrezione
Prefisso mancanteinclude:_spf.google.com ~allAggiungere v=spf1 all'inizio
Meccanismo non validov=spf1 include _spf.google.com ~allSostituire lo spazio con :
IP mal formattatov=spf1 ip4:192.168.1 ~allCorreggere in ip4:192.168.1.0/24
Meccanismo ptrv=spf1 ptr:captaindns.com ~allRimuovere (deprecato RFC 7208)
Doppio allv=spf1 include:_spf.google.com ~all -allMantenere un solo all

Causa 4: Void lookups (limite di 2)

La RFC 7208, sezione 11.1, impone un secondo limite spesso ignorato: 2 void lookups al massimo. Un void lookup si verifica quando un meccanismo DNS restituisce una risposta vuota (NXDOMAIN o nessun risultato).

# Esempio: includes verso domini inesistenti
v=spf1 include:ancien-service.captaindns.com include:service-supprime.captaindns.com include:_spf.google.com ~all

Se ancien-service.captaindns.com e service-supprime.captaindns.com restituiscono NXDOMAIN, raggiungi 2 void lookups. Un terzo include non valido provocherebbe il PermError.

Causa 5: Redirect verso un dominio senza SPF

Il meccanismo redirect= reindirizza la valutazione SPF verso un altro dominio. Se quel dominio non ha un record SPF, il risultato è permerror.

# ERRATO: dominio di destinazione senza record SPF
v=spf1 redirect=_spf.captaindns.com
# (se _spf.captaindns.com non ha un TXT v=spf1 → permerror)

# CORRETTO: dominio di destinazione con SPF valido
v=spf1 redirect=_spf.captaindns.com
# (con _spf.captaindns.com : "v=spf1 ip4:203.0.113.0/24 ~all")

Causa 6: Includes circolari o irrisolvibili

Se il tuo SPF contiene una catena di includes che forma un loop su se stessa, la valutazione fallisce:

# Loop circolare (permerror)
# captaindns.com       → v=spf1 include:_spf.captaindns.com ~all
# _spf.captaindns.com  → v=spf1 include:captaindns.com ~all

Questo caso è raro, ma si verifica durante riconfigurazioni DNS mal coordinate.

Come diagnosticare un SPF PermError?

Albero diagnostico SPF PermError: 6 verifiche per identificare la causa esatta dell'errore

Segui questi passaggi in ordine per identificare la causa esatta:

Passaggio 1: Verificare il numero di record SPF

dig +short TXT captaindns.com | grep "v=spf1"

Se il comando restituisce più di una riga, è la causa 2. Unifica i record.

Passaggio 2: Verificare la sintassi

Ogni meccanismo deve essere correttamente formattato: include:dominio, ip4:indirizzo/maschera, mx, a. Gli errori più comuni: spazio al posto di :, prefisso v=spf1 assente, doppio all.

Passaggio 3: Contare i DNS lookups

Risolvi ricorsivamente ogni include:, a, mx, redirect ed exists. Il totale non deve superare 10.

Passaggio 4: Verificare i void lookups

Testa ogni dominio referenziato da include: e redirect=. Se più di 2 restituiscono NXDOMAIN o una risposta vuota, è la causa 4.

Passaggio 5: Testare il redirect

Se il tuo SPF utilizza redirect=, verifica che il dominio di destinazione possieda un record SPF valido.

Passaggio 6: Cercare i loop

Segui manualmente la catena degli includes per individuare eventuali cicli.

Come correggere ogni tipo di PermError?

Record multipli: unificare

Recupera i meccanismi di ogni record SPF e combinali in uno solo:

# Prima: 2 record (permerror)
"v=spf1 include:_spf.google.com ~all"
"v=spf1 include:sendgrid.net ~all"

# Dopo: 1 solo record
"v=spf1 include:_spf.google.com include:sendgrid.net ~all"

Crea il tuo record unificato con il nostro SPF Generator.

Errori di sintassi: riscrivere

Confronta il tuo record con la sintassi ufficiale RFC 7208. I punti da verificare:

  • Il prefisso v=spf1 è obbligatorio e deve essere in prima posizione
  • Ogni meccanismo è separato da un singolo spazio
  • I meccanismi include: e redirect= sono seguiti da un dominio valido
  • Un solo meccanismo all in ultima posizione
  • Il meccanismo ptr è deprecato, rimuovilo

DNS lookups: ridurre sotto 10

Tre approcci per ridurre il numero di lookups:

  1. Eliminare gli includes inutili: rimuovi i servizi che non utilizzi più
  2. Sostituire con IP diretti: per i tuoi server, usa ip4: e ip6: al posto di include:
  3. SPF flattening: risolvi automaticamente tutti gli includes in indirizzi IP con il nostro SPF Flattener

Void lookups: pulire i riferimenti non validi

Rimuovi o correggi ogni include: che punta a un dominio inesistente. Verifica che tutti i domini referenziati abbiano un record DNS valido.

Redirect non valido: pubblicare il SPF di destinazione

Assicurati che il dominio utilizzato con redirect= possieda un record TXT v=spf1 ... valido.

SPF PermError e DMARC: l'effetto domino

Cascata di errori: un SPF PermError provoca il fallimento DMARC se anche DKIM fallisce

Un SPF PermError non resta isolato. DMARC verifica due meccanismi di autenticazione: SPF e DKIM. Quando SPF restituisce permerror, DMARC considera l'allineamento SPF come fallito. Se anche DKIM fallisce (chiave scaduta, intestazione modificata, firma non valida), entrambi i pilastri di DMARC crollano.

La cascata è diretta:

  1. SPF PermError: DMARC non può validare l'allineamento SPF
  2. Se anche DKIM fallisce: DMARC fallisce completamente
  3. Con p=reject: l'email viene rifiutata dal server di ricezione
  4. Con p=quarantine: l'email viene messa nello spam

Il problema è particolarmente insidioso con una policy DMARC p=none: le email passano, ma i tuoi report DMARC mostrano tassi di fallimento crescenti. Il giorno in cui passi a p=reject, tutte le email il cui SPF è in PermError vengono rifiutate.

Piano d'azione consigliato

  1. Diagnostica la causa esatta: utilizza i 6 passaggi di verifica per identificare il tipo di PermError
  2. Applica la correzione specifica: ogni causa ha il proprio metodo di correzione
  3. Testa prima di pubblicare: valida il tuo nuovo record in uno strumento diagnostico prima di modificare la tua zona DNS
  4. Verifica l'impatto DMARC: dopo la correzione, conferma che i tuoi report DMARC non mostrino più PermError
  5. Implementa un monitoraggio: controlla il tuo record SPF mensilmente per individuare eventuali regressioni

FAQ

Cos'è un SPF PermError?

Un SPF PermError è un errore permanente restituito quando un record SPF non può essere correttamente valutato dal server di ricezione. A differenza di un TempError (transitorio), il PermError persiste finché il record non viene corretto dall'amministratore DNS.

Quali sono le cause più frequenti di un SPF PermError?

Le 6 cause principali sono: il superamento del limite di 10 DNS lookups, la presenza di più record SPF sullo stesso dominio, gli errori di sintassi, il superamento di 2 void lookups, un redirect verso un dominio senza SPF e gli includes circolari.

Un SPF PermError fa fallire DMARC?

Sì. DMARC considera un SPF PermError come un fallimento dell'allineamento SPF. Se anche DKIM fallisce, DMARC fallisce completamente. Con una policy p=reject, le email vengono rifiutate dal server di ricezione.

Come faccio a sapere se il mio SPF ha un PermError?

Utilizza uno strumento di diagnostica SPF che valuta il tuo record in tempo reale. I report DMARC aggregati (formato RUA) indicano anche i risultati SPF per ogni sorgente di invio, compresi i PermError.

Qual è la differenza tra PermError e TempError?

Il PermError è un errore permanente causato da un record SPF non valido (sintassi, lookups, struttura). Il TempError è un errore temporaneo causato da un problema DNS transitorio (timeout, server non disponibile). Il TempError si risolve generalmente da solo, il PermError richiede un intervento manuale.

Cos'è un void lookup?

Un void lookup si verifica quando un meccanismo DNS nel tuo SPF restituisce una risposta vuota (NXDOMAIN o nessun risultato). La RFC 7208 limita i void lookups a 2 per valutazione SPF. Oltre questo limite, il risultato è PermError, anche se il totale dei lookups resta inferiore a 10.

Si può avere un PermError con meno di 10 lookups?

Sì. Il PermError può essere causato da fattori diversi dal superamento dei 10 lookups: record SPF multipli, errori di sintassi, void lookups superiori a 2, redirect non valido o includes circolari. Il contatore dei lookups è solo una delle 6 verifiche necessarie.

Glossario

  • PermError: errore permanente restituito quando un record SPF è strutturalmente non valido e non può essere valutato dal server di ricezione.
  • TempError: errore temporaneo restituito quando un problema DNS transitorio impedisce la valutazione SPF. Si risolve generalmente in modo automatico.
  • Void lookup: query DNS che restituisce una risposta vuota (NXDOMAIN o nessun risultato). Limitato a 2 per valutazione SPF secondo la RFC 7208.
  • DMARC: protocollo di autenticazione email che verifica l'allineamento SPF e DKIM per decidere il trattamento dei messaggi (accettare, mettere nello spam, rifiutare).
  • RFC 7208: specifica ufficiale del protocollo SPF (Sender Policy Framework) che definisce le regole di valutazione, i limiti di lookups e i risultati possibili.

Verifica il tuo record SPF adesso: utilizza il nostro SPF Record Check per diagnosticare gli errori e correggere il tuo SPF prima che comprometta la tua deliverability.


📚 Guide SPF correlate

Fonti

Articoli simili