La tua campagna parte, una parte dei destinatari resta in coda e il log mostra «452 4.5.3 Your message has too many recipients» mentre il tuo strumento di emailing risponde che va tutto bene. Il server rifiuta una parte della lista in quella transazione SMTP senza chiudere la porta. Dividi l’invio in lotti da 100 destinatari al massimo (la soglia minima che la RFC 5321 obbliga ogni server ad accettare) e poi reinvia solo gli indirizzi rifiutati.
Cosa significa un 452 4.5.3
La cifra 4 classifica l’errore come temporaneo. La RFC 5321, pubblicata nell’ottobre 2008 per sostituire la RFC 2821, corregge la RFC 821 del 1982, che assegnava per errore il codice 552 a questa condizione. La RFC 5321 (sezione 4.5.3.1.10) impone il codice 452 quando un server esaurisce il proprio limite di comandi RCPT. Un rifiuto sotto i 100 comandi RCPT viola la specifica.
Un 452 è quindi un soft bounce. La differenza con il rifiuto definitivo è spiegata nell’articolo sull’hard bounce e il soft bounce. Lo stesso eccesso di destinatari produce un 550 5.5.3 (RESOLVER.ADR.RecipLimit su Exchange) quando il rifiuto è definitivo, senza nuovi tentativi.
L’elenco generale dei codici è in i codici di risposta SMTP da conoscere. Una casella piena, altro caso di errore su un indirizzo esistente, è trattata nell’articolo sull’errore 552 mailbox full.
I limiti di destinatari per servizio di posta
La tabella confronta i limiti pubblicati dai fornitori per un singolo invio. Il numero che blocca dipende dal percorso utilizzato: lo stesso account Gmail accetta 2.000 destinatari dall’interfaccia web e 100 quando uno strumento si collega in SMTP. Valori rilevati a ottobre 2026, da ricontrollare prima di dimensionare un invio: Google e Microsoft li modificano.
| Servizio di posta o contesto | Destinatari per messaggio | Limite giornaliero | Testo di errore osservato |
|---|---|---|---|
| Gmail e Google Workspace (interfaccia web) | 2.000 in totale, di cui massimo 500 esterni | 2.000 messaggi e 10.000 destinatari per utente; 3.000 destinatari esterni | Your message has too many recipients |
| Gmail in SMTP (utenti POP o IMAP) | 100 | stessi limiti giornalieri | Your message has too many recipients |
| Gmail API | 500 | stessi limiti giornalieri | Your message has too many recipients |
| Relay smtp-relay.gmail.com | 100 per transazione SMTP | vedi la pagina del relay | Your message has too many recipients |
| Exchange Online | regolabile fino a 1.000 | 10.000 destinatari per casella al giorno; limite di tenant (TERRL) in base alle licenze | Recipients belong to multiple regions (ATTR38) |
| Postfix | 1.000 di default (smtpd_recipient_limit) | nessuno | Error: too many recipients |
| Minimo imposto dalla RFC 5321 | 100 da accettare | non applicabile | 452 4.5.3 |
La colonna «testo di errore» orienta la diagnosi. Due server possono restituire lo stesso codice 452 4.5.3 per ragioni opposte: in un caso un limite sul numero di destinatari, nell’altro una regola di dominio. Leggi sempre la frase che segue il codice.
Gmail e Google Workspace: due messaggi per lo stesso codice
Il codice 452 4.5.3 compare con due formulazioni nella pagina degli errori SMTP di Gmail: «Your message has too many recipients» e «Domain policy size per transaction exceeded, please try this recipient in a separate transaction».
La prima rimanda alla pagina dei limiti di invio di Google. Secondo la documentazione di Google Workspace sui limiti di invio, un messaggio accetta 2.000 destinatari in totale, di cui 500 esterni. La stessa pagina fissa 100 destinatari per messaggio per gli utenti che inviano in SMTP da un client POP o IMAP. Uno strumento collegato in SMTP a un account Gmail si ferma quindi a 100.
La seconda formulazione dipende da una regola di dominio: il server chiede di presentare il destinatario indicato in una transazione separata. Google non pubblica una soglia numerica per questa regola. Isola l’indirizzo citato nel messaggio di errore e reinvialo da solo.
I limiti giornalieri si sommano a quelli per messaggio. Google fissa 2.000 messaggi al giorno per utente, con 10.000 destinatari in totale di cui 3.000 esterni. 30 lotti da 100 da un solo account raggiungono i 3.000 esterni. Oltre questa soglia, distribuisci la campagna su più giorni. Il relay smtp-relay.gmail.com applica invece 100 destinatari per transazione SMTP (pagina degli errori del relay SMTP di Google Workspace).
Microsoft 365 ed Exchange Online
Exchange Online (Microsoft 365) limita ogni messaggio a un numero di destinatari regolabile fino a 1.000 nei campi A, Cc e Ccn. Un limite distinto di 10.000 destinatari per casella e per periodo di 24 ore si applica agli invii (documentazione Microsoft Learn, limiti di Exchange Online, aggiornata a settembre 2026). Entrambi i limiti sono riportati nella pagina dei limiti di Exchange Online, insieme a un ulteriore limite a livello di tenant che dipende dal numero di licenze.
La variante ATTR38 è più ingannevole. Il testo completo è «452 4.5.3 Recipients belong to multiple regions ATTR38»: il rifiuto nasce dalla distribuzione degli indirizzi tra più regioni o tenant di Microsoft, qualunque sia il loro numero. L’amministratore di una lista di circa 100 indirizzi l’ha ricevuto su 5 indirizzi Hotmail a ogni invio (thread di Microsoft Q&A). Microsoft non definisce il codice ATTR38 nella pagina dei limiti.
Per leggere il valore effettivo su una casella, apri PowerShell con il modulo ExchangeOnlineManagement (Connect-ExchangeOnline) e lancia Get-Mailbox nome.cognome@dominio.it | Format-List RecipientLimits. Il report Tenant Outbound External Recipients, in Exchange admin center > Reports > Mail flow, mostra il limite TERRL del tuo tenant. In Mail flow > Message trace, il dettaglio dell’errore riporta il testo completo del 452.
Togli gli indirizzi outlook.com e hotmail.com dal lotto principale e inviali in piccoli gruppi. Secondo un thread di Microsoft Q&A del 2018, che cita Michael Wise di Microsoft, un 452 chiede al server mittente di ritentare subito i destinatari rifiutati, e l’autore della risposta vi vede un difetto lato Outlook.com. Se il rifiuto persiste, passa a un destinatario per transazione. I record SPF e DKIM del dominio non c’entrano. Il testo del messaggio a volte precisa «retry timeout exceeded»: il server ha riprovato la coda fino alla scadenza e poi ha abbandonato il messaggio.
Postfix
Su un server Postfix 3.x che riceve la posta, il limite si chiama smtpd_recipient_limit e vale 1.000 di default (documentazione Postfix, postconf). Oltre questa soglia, il server risponde «452 4.5.3 Error: too many recipients». I log si trovano in /var/log/mail.log su Debian e Ubuntu: grep "too many recipients" /var/log/mail.log elenca le sessioni rifiutate. Se amministri questo server, leggi il valore con postconf smtpd_recipient_limit, poi aumentalo con postconf -e "smtpd_recipient_limit = 2000" (la direttiva si scrive in /etc/postfix/main.cf). Ricarica quindi con postfix reload.
Il parametro smtpd_recipient_overshoot_limit (1.000 di default) lascia inoltre passare 1.000 destinatari in eccesso prima che Postfix conti un errore di sessione. Lato mittente, Postfix divide da solo gli invii per destinazione con default_destination_recipient_limit (50 di default) e mette i destinatari rifiutati in coda differita (deferrals).
Free, OVH e Orange
Free (free.fr), OVHcloud (ovhcloud.com) e Orange (orange.fr) compaiono nei risultati di Google per questo codice. La documentazione ufficiale di questi tre fornitori non indica alcun limite per messaggio, quindi qui non trovi nessun numero. Cercalo nella scheda della tua offerta o chiedilo all’assistenza.
Sbloccare l’invio passo dopo passo
- Individua il testo esatto che segue il codice nell’NDR o nel log SMTP: «too many recipients» (limite sul numero), «Domain policy size per transaction exceeded» (regola di dominio Google) o «Recipients belong to multiple regions» (ATTR38 su Microsoft). Questo testo determina la correzione.
- Conta i destinatari della busta. A, Cc e Ccn contano tutti (documentazione Microsoft): spostare gli indirizzi in Ccn non riduce il totale.
- Dividi la lista in lotti da 100 destinatari al massimo per transazione. Una base di 25.000 indirizzi dà 250 lotti, cioè almeno 3 giorni di invio da un account Google Workspace limitato a 10.000 destinatari al giorno.
- Lascia prima che il server di invio ritenti la coda. Un 4xx si ripete da solo e un reinvio manuale nel frattempo crea duplicati.
- Se alcuni indirizzi restano rifiutati, reinvia solo quelli. I destinatari accettati nella stessa transazione hanno ricevuto il messaggio, un reinvio globale lo consegnerebbe due volte.
- Controlla la reputazione dopo il primo lotto: apri Google Postmaster Tools (postmaster.google.com) e guarda il tasso di spam segnalato dagli utenti (complaint rate) prima di proseguire con i lotti successivi.
- Verifica il limite giornaliero prima di rilanciare i lotti, in particolare 10.000 destinatari al giorno per casella su Exchange Online.
Il reinvio globale dopo un 452 parziale è l’errore tipico: la RFC 5321 prevede che il client ritenti solo i destinatari rifiutati, non l’intera transazione. Prendi un invio di 150 indirizzi tramite Gmail in SMTP: i primi 100 comandi RCPT TO passano e il 101° riceve «452 4.5.3 Your message has too many recipients». I primi 100 destinatari hanno già il loro messaggio. Solo i 50 successivi aspettano il nuovo tentativo: rilanciare tutti i 150 manderebbe un duplicato a 100 persone.

Perché pulire la lista prima di rilanciare i lotti
Obiezione comune: un 452 è temporaneo, quindi è inutile verificare la lista. Eppure dividere un invio moltiplica le transazioni. Ogni lotto ritentato espone gli indirizzi non validi a un nuovo rifiuto. Questi rifiuti definitivi tornano via NDR e fanno salire il tasso di hard bounce, quindi pesano sulla sender reputation. Una lista pulita (list hygiene) limita questo rischio. Il tasso di hard bounce si legge poi negli NDR di ogni lotto: se sale da un lotto all’altro, la lista di partenza non era stata verificata.
Prima di rilanciare i lotti, prova la verifica di CaptainVerify su un campione della tua lista: il tasso di indirizzi non validi emerge prima che siano gli NDR a misurarlo al posto tuo.
Il primo test da lanciare
Apri il log dell’ultimo invio, individua il testo che segue «452 4.5.3», poi rilancia solo gli indirizzi rifiutati in lotti da 100.
