tutte le guide

// come risolvere

Gmail "550-5.7.1 ... is not RFC 5322 compliant": correggere intestazioni mancanti o duplicate

Gmail ha rifiutato la tua email perché le intestazioni violano lo standard RFC 5322: From, Date o Message-ID mancanti o duplicati. Ecco come correggere.

Cosa significa

Ogni email ha una sezione di intestazioni con campi come From, To, Date, Subject e Message-ID. RFC 5322 è lo standard che stabilisce come vanno scritte queste intestazioni. Gmail rifiuta le email che violano le regole di base. Il messaggio di errore di solito è simile a questo:

550-5.7.1 [203.0.113.10] Our system has detected that this message is not
550-5.7.1 RFC 5322 compliant:
550-5.7.1 'From' header is missing.
550-5.7.1 To reduce the amount of spam sent to Gmail, this message has been
550-5.7.1 blocked. Please visit
550-5.7.1  https://support.google.com/mail/?p=RfcMessageNonCompliant
550 5.7.1 and review RFC 5322 specifications for more information.

La riga centrale ti dice cosa non va, per esempio Multiple 'From' headers found oppure un'intestazione mancante o non valida. Leggila con attenzione: è la chiave per risolvere.

Perché succede

Questo errore deriva quasi sempre da un'applicazione, uno script o un plugin che costruisce le email da solo, e non da un normale programma di posta:

  • Nessuna intestazione From, oppure un From con un indirizzo non valido (spazi, dominio mancante, virgolette sbagliate attorno al nome visualizzato).
  • Intestazioni duplicate: due righe From, due Subject, due To o due Date, spesso perché il codice aggiunge un'intestazione che la libreria di posta aggiunge già.
  • Date o Message-ID mancanti, oppure una Date in un formato sbagliato.
  • Intestazioni malformate: righe non codificate correttamente, caratteri non ASCII in un'intestazione senza codifica, o un ritorno a capo sbagliato che fonde le intestazioni con il corpo del messaggio.

Come verificare

  • Invia un'email di test: nella home page di Delivmail (/) copia il tuo indirizzo di test unico e inviagli una normale email dallo stesso server, strumento o casella che ha ricevuto il rifiuto. Apri il report quando è pronto.
  • Guarda le intestazioni nel report, oppure visualizza il sorgente originale dell'email (in Gmail, "Mostra originale"). Controlla che ci siano esattamente un From, un Date, un Subject e un Message-ID.
  • Guarda il codice che invia. Cerca i punti in cui le intestazioni vengono aggiunte a mano, come stringhe From: concatenate nelle chiamate PHP mail().

Come risolvere

  1. Usa una vera libreria di posta (PHPMailer, Nodemailer, il modulo email del tuo framework) invece di costruire le intestazioni come testo. Queste librerie aggiungono Date e Message-ID e codificano correttamente le intestazioni.
  2. Imposta un solo indirizzo From con un formato valido, per esempio:
    From: Your Shop <orders@yourdomain.com>
    Metti tra virgolette i nomi visualizzati che contengono virgole o caratteri speciali.
  3. Togli le intestazioni duplicate. Se la libreria imposta già From o Subject, non aggiungerli di nuovo in un elenco di intestazioni personalizzate.
  4. Aggiungi un Date e un Message-ID se il tuo sistema non lo fa. Un Message-ID è simile a <unique-id@yourdomain.com>.
  5. Codifica i caratteri non inglesi (lettere accentate comprese) nel Subject e nei nomi usando la codifica integrata della tua libreria.
  6. Usa i fine riga corretti (CRLF) tra le intestazioni, e una riga vuota tra le intestazioni e il corpo.
  7. Aggiorna i plugin (plugin WordPress per moduli o SMTP, estensioni del negozio): le versioni vecchie causano spesso questi errori.

Verifica che sia risolto

Invia una nuova email dalla stessa applicazione a un nuovo indirizzo di test Delivmail e controlla le intestazioni nel report. Quando sono corrette, invia di nuovo l'email all'indirizzo Gmail che l'aveva rifiutata. Per questo errore non c'è nessun tempo di attesa legato alla reputazione: appena le intestazioni sono valide, Gmail smette di rifiutare per questo motivo.

Verifica che sia risolto

Una modifica DNS può richiedere da pochi minuti a qualche ora. Poi invia una nuova email di test o scansiona di nuovo il tuo dominio.

Guide correlate