Decodifica dei messaggi di mancato recapito
Un’e-mail respinta torna indietro con un blocco di codici scritti da amministratori di posta per altri amministratori di posta. Incolla l’avviso per avere la causa in parole semplici, sapere se l’errore è definitivo e a chi tocca muoversi.
Un bounce è un rapporto scritto da un server
Quando invii un’e-mail, il server del tuo provider la consegna al server del destinatario. Se la consegna non riesce, il server del destinatario risponde con una riga di rifiuto e il tuo server avvolge quella riga in un messaggio indirizzato a te. Il mittente risulta essere «Mail Delivery Subsystem», «MAILER-DAEMON» o «postmaster», perché non l’ha scritto una persona.
L’avviso ha due strati. In cima c’è una frase pensata per le persone, spesso vaga («Indirizzo non trovato», «Messaggio non recapitato»). La parte utile sta sotto, in un piccolo rapporto leggibile dalle macchine:
Final-Recipient: rfc822; anna@example.org Action: failed Status: 5.1.1 Remote-MTA: dns; mx.example.org Diagnostic-Code: smtp; 550 5.1.1 User unknown
Final-Recipient è l’indirizzo che non ha funzionato. Action dice se il server ha rinunciato (failed) o sta ancora provando (delayed). Remote-MTA è il server che ha detto no e Diagnostic-Code riporta le sue parole esatte.
Due codici, da leggere da sinistra a destra
La riga di rifiuto di solito contiene due numeri. Il primo ha tre cifre, come 550, ed è la risposta SMTP di base. Il secondo è formato da tre numeri separati da punti, come 5.1.1. È il codice di stato esteso ed è il più preciso dei due.
In entrambi, la prima cifra ti dice cosa succede dopo. Un 4 è un rifiuto temporaneo, quindi il tuo server tiene il messaggio in coda e riprova da solo. Un 5 è definitivo e non verrà fatto nessun altro tentativo. Il numero centrale del codice esteso indica l’argomento:
| Cifra centrale | Argomento | Esempio |
|---|---|---|
x.1.x | L’indirizzo | 5.1.1 casella inesistente, 5.1.2 dominio inesistente |
x.2.x | La casella | 5.2.2 spazio esaurito, 5.2.1 disattivata |
x.3.x | Il sistema di posta | 5.3.4 messaggio troppo grande |
x.4.x | Rete e instradamento | 4.4.1 nessuna risposta dall’host, 4.4.7 tempo di consegna scaduto |
x.5.x | Protocollo | 5.5.3 troppi destinatari |
x.6.x | Contenuto del messaggio | 5.6.0 messaggio malformato |
x.7.x | Sicurezza o policy | 5.7.26 autenticazione fallita, 5.7.1 rifiutato per policy |
I grandi provider aggiungono i propri numeri all’elenco. Microsoft 365 usa codici come 5.7.708 e 5.4.316. Gmail aggiunge una parola chiave in fondo alla riga, come gsmtp, e un link al supporto.
Come il decodificatore arriva alla risposta
Tutto gira nel tuo browser. Il decodificatore comincia estraendo i fatti: ogni codice esteso, ogni codice di risposta di base che conosce (da 421 a 556), i destinatari falliti, il server che ha rifiutato, gli eventuali indirizzi IP tra parentesi quadre e il campo Action.
Poi confronta il testo con un catalogo di una cinquantina di situazioni note. Ognuna si riconosce dalla sua formulazione tipica («blocked using», «quota exceeded», «greylisted») e dai suoi codici esatti. La formulazione caratteristica conta di più, un codice esatto aggiunge punti e la situazione con il punteggio migliore diventa la spiegazione principale. Gli altri candidati forti finiscono sotto «Altre spiegazioni possibili», perché un codice può coprire più cause. 5.7.1 da solo può indicare una blocklist, un filtro sul contenuto o una regola privata.
Temporaneo o definitivo si ricava dal campo Action quando c’è, altrimenti dalla prima cifra dei codici trovati. Ogni spiegazione indica chi deve intervenire: tu, il tuo provider di posta o il tuo tecnico, il destinatario, oppure ancora nessuno perché il server sta ancora riprovando.
Il decodificatore legge solo quello che incolli. Se un programma di posta ha accorciato l’avviso, o se il server che rifiuta ha scritto una frase sua senza un codice standard, potrebbe non trovare nulla. Apri il messaggio originale, mostrane il sorgente completo se il tuo programma di posta lo permette e incolla tutto.
Le cause frequenti e cosa fare
- Indirizzo o dominio sconosciuto (
5.1.1,5.1.2) - Controlla come è scritto, soprattutto dopo la @. Se è corretto, la casella è stata chiusa e dovrai chiedere il nuovo indirizzo in un altro modo.
- Casella piena (
5.2.2,4.2.2) - Solo il destinatario può liberare spazio. Avvisalo per telefono o con un messaggio.
- Messaggio troppo grande (
5.3.4) - La maggior parte dei provider si ferma intorno ai 20-25 MB e gli allegati crescono di un terzo durante il transito. Invia invece un link al file.
- Errori di autenticazione (
5.7.26,5.7.23,5.7.30) - Chi riceve non è riuscito a verificare che il tuo dominio abbia autorizzato il server di invio. Esegui il controllo SPF, DKIM e DMARC sul tuo dominio e correggi quello che segnala.
- «Blocked using» seguito dal nome di una lista
- L’indirizzo IP del tuo server di invio è in una blocklist antispam. La ricerca nelle blocklist mostra quale. Su un hosting condiviso, inoltra il risultato al tuo provider.
- Greylisting e altre risposte
4.x.x - Aspetta. Reinviare a mano crea duplicati e non azzera nulla. I server di solito riprovano per uno-cinque giorni prima di rinunciare.
Domande frequenti
Cosa significa 550 5.1.1?
Il server del destinatario dice che la casella non esiste. L’errore è definitivo. Nella maggior parte dei casi l’indirizzo contiene un errore di battitura o l’account è stato eliminato.
Qual è la differenza tra soft bounce e hard bounce?
Un soft bounce è un rifiuto temporaneo, con un codice che inizia per 4. La casella è piena, il server è occupato o ha chiesto di riprovare più tardi. Un hard bounce è definitivo, con un codice che inizia per 5. Gli strumenti di invio massivo rimuovono gli indirizzi in hard bounce perché scrivere loro di nuovo danneggia la reputazione del mittente.
Ho ricevuto un bounce per un’e-mail che non ho mai inviato. Mi hanno violato l’account?
Di solito no. Gli spammer mettono gli indirizzi di altri nel campo Da e i rifiuti tornano a quegli indirizzi. Se la cartella Posta inviata non mostra nulla di strano e la tua password funziona ancora, l’account è a posto. Pubblicare una policy DMARC rigorosa per il tuo dominio riduce il fenomeno.
Per quanto tempo un server di posta continua a riprovare?
Dipende dal server di invio. Le impostazioni comuni riprovano per uno-cinque giorni, a intervalli crescenti, e molti inviano un avviso di «ritardo» dopo qualche ora. Allo scadere del tempo ricevi un errore definitivo con un codice come 4.4.7.
Cosa significa 550 5.7.26 in Gmail?
Gmail ha rifiutato il messaggio perché non ha superato né SPF né DKIM per il dominio di invio, oppure perché la policy DMARC del dominio ha chiesto a Gmail di respingerlo. La correzione spetta al mittente, nei record DNS del dominio.
Il mio messaggio di bounce viene caricato da qualche parte?
No. Uno script nel tuo browser analizza il testo, che non lascia mai il tuo dispositivo.