Messaggi di errore email: cosa significano
Quando un’email non arriva a destinazione, il server di posta restituisce spesso un messaggio che permette di capire cosa è successo. Il problema è che risposte come 550 5.1.1 User unknown, 421 4.7.0 Try again later oppure 554 5.7.1 Message rejected non sono immediatamente comprensibili.
Questi messaggi possono indicare un indirizzo inesistente, una casella piena, un problema temporaneo del server, un errore di configurazione, un blocco antispam oppure un problema con SPF, DKIM o DMARC.
Per effettuare una diagnosi corretta non basta però cercare il significato del primo numero. Bisogna leggere l’intera risposta restituita dal server.

Come nasce un errore durante l’invio di un’email
La posta elettronica viene trasferita tra server utilizzando il Simple Mail Transfer Protocol (SMTP). Quando si invia un messaggio, il server mittente deve innanzitutto individuare il sistema responsabile della posta del dominio destinatario.
Questa informazione viene normalmente ricavata dai record Mail Exchange (MX) pubblicati nel Domain Name System (DNS). Il funzionamento di MX, TXT, SPF e degli altri record utilizzati dai servizi Internet è approfondito nella guida VHosting dedicata ai NameServer e record DNS.
Individuato il server destinatario, viene aperta una sessione SMTP. Durante questa comunicazione vengono inviati comandi e ricevute risposte numeriche.
Una risposta positiva può essere:
250 OK
Significa che il comando è stato accettato.
Una risposta negativa può invece essere:
550 5.1.1 User unknown
Quando il messaggio non può essere consegnato, il mittente può ricevere successivamente una notifica chiamata comunemente bounce, Non-Delivery Report (NDR) oppure Delivery Status Notification (DSN).
Come leggere correttamente un errore SMTP
Si consideri questa risposta:
550 5.1.1 User unknown
Contiene tre informazioni differenti.
550 è il codice di risposta SMTP. 5.1.1 è un Enhanced Status Code, cioè un codice che descrive il problema in maniera più dettagliata. User unknown è il testo diagnostico aggiunto dal server.
Queste tre informazioni devono essere lette insieme.
Si possono avere, per esempio:
550 5.1.1 User unknown 550 5.7.1 Message rejected
Il codice principale è sempre 550, ma nel primo caso il problema riguarda il destinatario. Nel secondo è presente un rifiuto collegato a una policy o a un controllo di sicurezza.
Codici SMTP 2xx, 4xx e 5xx
La prima cifra della risposta permette di capire immediatamente la categoria generale.
I codici 2xx indicano che l’operazione è stata completata correttamente. Il più comune durante una sessione SMTP è 250.
I codici 4xx indicano invece un problema temporaneo. Il messaggio non può essere consegnato in quel momento, ma il server mittente può effettuare nuovi tentativi.
I codici 5xx rappresentano un errore permanente per quella transazione. Ripetere lo stesso tentativo senza correggere il problema normalmente non è sufficiente.
Questa distinzione deriva dal funzionamento del protocollo SMTP.
Errore SMTP 421
Il codice 421 indica che il servizio non è disponibile e la connessione viene chiusa. È una condizione temporanea.
421 Service not available
Nella pratica il testo diagnostico può indicare anche limitazioni temporanee, problemi di reputazione o altre condizioni applicate dal server destinatario.
Se il problema compare soltanto verso un provider, si controllano le indicazioni restituite da quel sistema. Se riguarda molti domini differenti, si controllano anche server mittente, connettività e coda SMTP.
Errori SMTP 450, 451 e 452
Il codice 450 indica che l’operazione richiesta non può essere completata perché la mailbox non è disponibile in quel momento.
450 Requested mail action not taken
Il codice 451 indica invece che l’operazione è stata interrotta a causa di un errore locale durante l’elaborazione.
451 Requested action aborted: local error in processing
Il 452 segnala che l’operazione non può essere completata per una temporanea insufficienza delle risorse disponibili.
452 Requested action not taken: insufficient system storage
In tutti questi casi il codice appartiene alla famiglia 4xx. Il server mittente può quindi effettuare un nuovo tentativo.
Errore SMTP 455
Il codice 455 indica che il server non è temporaneamente in grado di gestire determinati parametri del comando SMTP.
455 Server unable to accommodate parameters
È meno comune dei codici 421 o 451, ma è utile conoscerlo quando si analizzano direttamente i log SMTP.
Greylisting e rifiuti temporanei
Il greylisting è una tecnica antispam che può rifiutare temporaneamente una consegna.
Si può ricevere, per esempio:
451 Try again later
Un server SMTP correttamente configurato mantiene il messaggio in coda e tenta nuovamente la consegna.
Per questo un errore 4xx non deve essere trattato immediatamente come un guasto permanente.
Rate limiting e troppi invii
Un provider può limitare temporaneamente la quantità o la frequenza dei messaggi provenienti dallo stesso sistema. Questo comportamento viene chiamato rate limiting.
Il messaggio può contenere espressioni come Too many messages, Too many connections oppure riferimenti espliciti alla frequenza degli invii.
In questo caso non si aumenta il numero delle connessioni. Si controllano invece volume degli invii, concorrenza SMTP, reputazione e policy del provider destinatario.
Errori SMTP 500, 501, 502, 503 e 504
I codici della famiglia 500-504 riguardano principalmente problemi nei comandi utilizzati durante la comunicazione SMTP.
500 indica un errore di sintassi o un comando non riconosciuto.
500 Syntax error, command unrecognized
501 indica un errore di sintassi nei parametri o negli argomenti del comando.
501 Syntax error in parameters or arguments
502 significa che il comando è riconosciuto ma non è implementato dal server.
502 Command not implemented
503 segnala una sequenza errata dei comandi SMTP.
503 Bad sequence of commands
504 indica che un parametro del comando non è implementato.
504 Command parameter not implemented
Questi errori sono particolarmente utili quando si diagnostica la comunicazione tra un’applicazione e il server SMTP. Non indicano necessariamente un problema con il destinatario.
Errore SMTP 550
Il 550 è uno dei codici più comuni nelle notifiche di mancata consegna.
Un esempio è:
550 5.1.1 User unknown
Il server non riconosce il destinatario. Si controllano quindi indirizzo, esistenza della casella e configurazione del dominio.
Ma il codice 550 non significa sempre indirizzo inesistente.
550 5.7.1 Message rejected
In questo secondo esempio il rifiuto appartiene alla categoria delle policy o della sicurezza. Serve quindi il messaggio diagnostico completo.
Errore SMTP 551
Il codice 551 indica che il destinatario richiesto non è locale rispetto al server interrogato.
551 User not local
Il server può eventualmente fornire informazioni sull’indirizzo verso il quale dovrebbe essere inoltrato il messaggio.
Errore SMTP 552
Il 552 segnala il mancato completamento dell’operazione per un problema relativo all’allocazione dello spazio.
Gli Enhanced Status Code permettono di distinguere meglio le situazioni reali.
Per esempio:
552 5.2.2 Mailbox full
può indicare che la casella del destinatario ha esaurito lo spazio disponibile.
Un altro sistema può utilizzare:
552 5.3.4 Message too large
per indicare un messaggio che supera i limiti previsti.
Il testo diagnostico e il codice esteso sono quindi indispensabili.
Errore SMTP 553
Il codice 553 riguarda problemi relativi al nome o all’indirizzo della mailbox.
Può comparire quando l’indirizzo non rispetta il formato previsto oppure quando il dominio indicato presenta un problema.
Si controllano indirizzo completo, dominio e testo restituito dal server.
Errore SMTP 554
Il codice 554 indica il fallimento della transazione SMTP.
554 Transaction failed
Può essere associato a cause differenti. Non significa automaticamente che l’indirizzo IP sia in blacklist.
Quando il testo indica un rifiuto per spam, reputazione o policy, si controllano IP, dominio, autenticazione e configurazione del server mittente.
Errore SMTP 555
Il codice 555 riguarda parametri di MAIL FROM o RCPT TO che il server non riconosce oppure non implementa.
555 MAIL FROM/RCPT TO parameters not recognized or not implemented
È un errore che interessa soprattutto la comunicazione SMTP e può comparire nei log quando client e server utilizzano estensioni o parametri non compatibili.
Cosa significano i codici 4.x.x e 5.x.x
Oltre alla risposta SMTP principale, molti server restituiscono un Enhanced Status Code.
Un codice come:
5.1.1
contiene tre parti.
La prima indica la classe del risultato. 4 rappresenta un problema temporaneo, mentre 5 indica un fallimento permanente.
La seconda cifra identifica la categoria del problema. La terza permette di specificarne ulteriormente la natura.
Enhanced Status Code X.1.x: problemi con gli indirizzi
La famiglia X.1.x riguarda lo stato degli indirizzi.
X.1.1 indica che la mailbox specificata non esiste.
X.1.2 riguarda il sistema o il dominio di destinazione.
X.1.3 segnala un problema nella sintassi dell’indirizzo.
La lettera X viene sostituita dalla classe effettiva. Si possono quindi incontrare codici come 5.1.1 o altri valori della stessa famiglia.
Enhanced Status Code X.2.x: problemi con la mailbox
La famiglia X.2.x riguarda la casella del destinatario.
X.2.1 indica che la mailbox è disabilitata e non accetta messaggi.
X.2.2 indica che la mailbox ha superato la propria quota.
X.2.3 riguarda invece un messaggio che supera il limite amministrativo previsto per quella mailbox.
Questi codici aiutano a distinguere un indirizzo inesistente da una casella esistente ma temporaneamente o amministrativamente inutilizzabile.
Enhanced Status Code X.3.x: problemi del sistema di posta
La famiglia X.3.x riguarda il sistema di posta destinatario.
Un esempio particolarmente utile è X.3.4, che indica che il messaggio è troppo grande per il sistema di destinazione.
È differente da X.2.3: nel primo caso il limite riguarda il sistema, nel secondo la singola mailbox.
Enhanced Status Code X.4.x: rete e routing
La famiglia X.4.x riguarda problemi della rete o del percorso utilizzato per raggiungere il server destinatario.
X.4.1 indica che non è stata ottenuta risposta dall’host.
X.4.2 segnala una connessione non riuscita.
X.4.4 riguarda l’impossibilità di instradare correttamente il messaggio.
X.4.7 indica che il tempo previsto per la consegna è scaduto.
Un 4.4.7 rappresenta quindi un problema temporaneo che ha portato alla scadenza dei tentativi previsti, mentre il significato preciso va sempre interpretato nel contesto della notifica ricevuta.
Enhanced Status Code X.5.x: problemi del protocollo
La famiglia X.5.x riguarda il protocollo utilizzato durante la consegna.
X.5.1 indica un comando non valido.
X.5.2 riguarda un errore di sintassi.
X.5.3 può indicare un numero eccessivo di destinatari.
Questa categoria diventa particolarmente utile quando il problema compare nei log SMTP ma gli indirizzi e il dominio risultano corretti.
Enhanced Status Code X.6.x: contenuto del messaggio
La famiglia X.6.x riguarda il contenuto o il formato del messaggio.
Può segnalare problemi di conversione, contenuto non supportato oppure errori durante l’elaborazione del corpo dell’email.
Questi errori sono meno frequenti nelle normali configurazioni di un client di posta, ma possono comparire durante integrazioni, gateway e sistemi automatici.
Enhanced Status Code X.7.x: sicurezza e policy
La famiglia X.7.x è particolarmente importante perché riguarda sicurezza e policy.
Qui possono rientrare problemi di autorizzazione, autenticazione, reputazione e regole applicate dal sistema destinatario.
Un esempio molto comune è:
550 5.7.1 Message rejected
Il codice 5.7.1 indica che la consegna non è autorizzata oppure è stata rifiutata per una policy. La causa concreta deve essere ricavata dal testo aggiunto dal server.
Relay access denied
Il relay SMTP avviene quando un server accetta un messaggio per inoltrarlo verso un’altra destinazione.
Un server non deve permettere indiscriminatamente a qualsiasi sistema di utilizzarlo per inviare posta, perché diventerebbe un open relay sfruttabile per lo spam.
Una risposta come:
Relay access denied
può quindi indicare che il client non è autorizzato a effettuare l’invio attraverso quel server.
Si controllano server SMTP, autenticazione, credenziali e configurazione dell’account.
Authentication failed
Un errore come:
Authentication failed
indica che il server non ha accettato l’autenticazione utilizzata per l’invio.
Si controllano nome utente, password, server SMTP, porta, modalità di protezione della connessione e metodo di autenticazione.
Quando il problema compare durante la configurazione del programma di posta, si possono confrontare i parametri con le guide presenti nella sezione Email di VHosting, dove sono disponibili tutorial dedicati ai principali client.
Messaggio rifiutato come spam
Un messaggio può essere tecnicamente valido e venire comunque rifiutato dai controlli antispam.
Il server potrebbe restituire:
550 5.7.1 Message rejected
oppure un messaggio più esplicito relativo a spam o policy.
Si controllano reputazione dell’IP, dominio mittente, SPF, DKIM, DMARC, reverse DNS e comportamento degli invii.
Se si gestisce direttamente un server con DirectAdmin, la guida VHosting su come configurare l’antispam su DirectAdmin permette di approfondire la gestione dei relativi filtri.
Indirizzo IP in blacklist
Un indirizzo IP utilizzato per spedire posta può essere inserito in una blacklist o, più precisamente, in una blocklist utilizzata dai sistemi antispam.
Quando il server destinatario indica esplicitamente questo problema, non conviene richiedere immediatamente la rimozione dalla lista.
Prima si deve individuare la causa.
Si controllano log SMTP, code di posta, account compromessi, siti violati, script che effettuano invii e variazioni anomale nel volume dei messaggi.
La guida VHosting dedicata a cosa sono le blacklist email approfondisce il funzionamento di questi sistemi.
SPF fail
Sender Policy Framework (SPF) è un sistema di autenticazione basato sul DNS. Permette al proprietario di un dominio di indicare quali sistemi sono autorizzati a inviare posta per suo conto.
Quando compare un errore SPF, si controlla il record pubblicato nel DNS e si verifica che il sistema che sta realmente effettuando l’invio sia autorizzato.
Non si aggiungono indirizzi IP casualmente. Bisogna considerare tutti i servizi legittimi che inviano email per quel dominio.
DKIM fail
DomainKeys Identified Mail (DKIM) applica una firma crittografica al messaggio.
Il server destinatario recupera dal DNS la chiave pubblica corrispondente e verifica la firma.
Un errore DKIM può dipendere da una firma non valida, da un selettore errato, da un record DNS mancante oppure da modifiche apportate al messaggio dopo la firma.
Quest’ultimo caso può diventare rilevante anche durante gli inoltri. Per approfondire questo scenario è disponibile la guida VHosting su come inoltrare le email con DirectAdmin.
DMARC reject
Domain-based Message Authentication, Reporting and Conformance (DMARC) utilizza SPF e DKIM e verifica anche il loro allineamento rispetto al dominio visibile nel campo From.
Per questo un messaggio può superare SPF ma non soddisfare comunque la policy DMARC.
Quando il server indica un rifiuto DMARC, si controllano SPF, DKIM, allineamento dei domini e record DMARC pubblicato.
Reverse DNS e record PTR
Il reverse DNS permette di partire da un indirizzo IP e risalire al nome associato attraverso un record Pointer (PTR).
È un elemento importante per un server che invia direttamente posta su Internet.
Il PTR deve essere configurato dal soggetto che controlla l’indirizzo IP o la relativa zona reverse. Non è quindi normalmente un record che si aggiunge alla stessa zona DNS utilizzata per MX e SPF.
Un reverse DNS assente o incoerente può contribuire a problemi di consegna o a rifiuti da parte di sistemi che applicano controlli specifici.
HELO ed EHLO
Durante una sessione SMTP il sistema mittente si presenta utilizzando HELO oppure EHLO.
EHLO mail.example.com
Quando si amministra direttamente il server conviene verificare la coerenza tra hostname, nome utilizzato in HELO/EHLO, DNS e reverse DNS.
Errori TLS
Transport Layer Security (TLS) viene utilizzato per proteggere la comunicazione tra sistemi.
Gli errori possono riguardare la negoziazione TLS, il certificato, il nome host oppure la compatibilità delle configurazioni.
Un messaggio potrebbe contenere riferimenti a TLS handshake failed, STARTTLS oppure alla verifica del certificato.
In questo caso si controlla il livello di trasporto. Modificare SPF o la quota della casella non avrebbe alcun effetto sul problema.
Message too large
I server possono imporre una dimensione massima ai messaggi.
Quando viene superata si possono ricevere errori appartenenti, per esempio, alla famiglia 5.3.4.
La dimensione dell’email trasmessa non coincide necessariamente con la semplice somma dei file allegati. Gli allegati binari devono essere codificati per essere trasportati nel messaggio e questa operazione introduce dati aggiuntivi.
Quando il limite viene superato si riducono gli allegati oppure si utilizza un sistema esterno per condividere i file.
Quando WordPress non invia le email
WordPress introduce un caso particolare. Moduli di contatto, recupero password, notifiche amministrative e messaggi generati da WooCommerce dipendono dal sistema utilizzato dal sito per effettuare l’invio.
Bisogna distinguere un errore dell’applicazione da un rifiuto SMTP.
Se WordPress non riesce nemmeno ad affidare il messaggio al sistema di posta, non esiste ancora un errore restituito dal server destinatario. Se invece il messaggio viene consegnato al server SMTP e successivamente rifiutato, i codici analizzati in questa guida diventano utili per la diagnosi.
Questo argomento viene approfondito nella guida VHosting Mail non inviate da WordPress: usare PHP o SMTP?.
Tabella dei principali codici SMTP
| Codice | Significato generale | Prima verifica |
|---|---|---|
421 | Servizio temporaneamente non disponibile | Server, connessione e testo diagnostico |
450 | Mailbox temporaneamente non disponibile | Risposta completa |
451 | Errore temporaneo durante l’elaborazione | Server e retry |
452 | Risorse temporaneamente insufficienti | Server destinatario |
455 | Parametri temporaneamente non gestibili | Comando SMTP |
500 | Comando non riconosciuto o sintassi errata | Client o applicazione SMTP |
501 | Parametri o argomenti non validi | Comando SMTP |
502 | Comando non implementato | Compatibilità client/server |
503 | Sequenza dei comandi errata | Sessione SMTP |
504 | Parametro non implementato | Estensioni SMTP |
550 | Operazione rifiutata permanentemente | Codice esteso e testo |
551 | Destinatario non locale | Indirizzo e routing |
552 | Problema di allocazione dello spazio | Quota e dimensione |
553 | Problema relativo all’indirizzo | Indirizzo e dominio |
554 | Transazione fallita | Risposta completa |
555 | Parametri MAIL FROM/RCPT TO non supportati | Sessione SMTP |
Come diagnosticare un errore email nella pratica
Quando viene segnalato che una mail “torna indietro”, la prima cosa da recuperare è il messaggio di errore completo. Una schermata con la sola scritta “Delivery failed” serve a poco.
Una risposta come:
550 5.7.1 Message rejected
fornisce già più informazioni.
Si controlla prima la classe. Un 4xx indica una condizione temporanea. Un 5xx indica un fallimento permanente della transazione.
Si passa quindi all’Enhanced Status Code. Le famiglie X.1.x, X.2.x, X.3.x, X.4.x, X.5.x, X.6.x e X.7.x permettono di capire se si sta cercando un problema nell’indirizzo, nella mailbox, nel server, nella rete, nel protocollo, nel contenuto oppure nelle policy di sicurezza.
Infine si legge il testo diagnostico e si identifica il sistema che ha generato la risposta.
Se viene restituito 5.1.1 User unknown, modificare DKIM non serve. Se l’autenticazione SMTP fallisce, cambiare i record MX del destinatario non serve. Se viene indicato un problema DMARC, aumentare la quota della casella non serve.
È questo il vantaggio dei codici SMTP: permettono di restringere il problema prima di iniziare a modificare configurazioni.
Dove si incontrano questi codici
I messaggi di errore SMTP si incontrano nei bounce ricevuti dopo una mancata consegna, nei log dei server Postfix ed Exim, nelle code dei Mail Transfer Agent (MTA), nei pannelli di hosting, nei servizi SMTP esterni e negli strumenti utilizzati per monitorare la posta.
Quando si dispone dell’accesso al server, il log permette spesso di vedere direttamente quale sistema ha rifiutato il messaggio e quale risposta ha restituito. Nei servizi gestiti la stessa informazione può essere disponibile nel pannello oppure nella notifica di mancata consegna.
La regola pratica resta semplice: si conserva sempre la risposta completa. 550 da solo dice poco. 550 5.1.1 User unknown permette già di capire dove iniziare la verifica.



