L’ho visto originariamente sulla lista mailop, ma è stato anche pubblicato su Reddit. Estratti qui sotto:
Se stai lottando con il posizionamento nella posta in arrivo di Gmail nonostante intestazioni pulite e una buona reputazione, il tuo ESP potrebbe sabotare i tuoi messaggi a tua insaputa. Il relay SMTP di SendGrid viola RFC 2047 e RFC 2369 codificando MIME l’intestazione List-Unsubscribe non appena il suo valore supera gli 77 byte. Questo interrompe i link di annullamento dell’iscrizione in Gmail e Outlook. Il problema è stato confermato internamente ma rimane irrisolto. SendGrid invia oltre 100 miliardi di email al mese: questo è un massiccio fallimento di conformità agli standard con conseguenze reali per la recapitalità e la conformità.
…
Finché questa intestazione è di 77 byte o meno, SendGrid la inoltra invariata. Ma quando il valore raggiunge 78 byte, il loro relay SMTP la riscrive forzatamente utilizzando la sintassi delle parole codificate MIME (RFC 2047). Tale codifica è esplicitamente vietata nelle intestazioni strutturate come List-Unsubscribe.
Ecco cosa invia invece SendGrid:
List-Unsubscribe: =?us-ascii?Q?=3Chttps=3A=2F=2Fwww=2Eexample=2Ecom=2Funsubscribe=2F=3E=2C=3Cmailto=3Aunsubscribe=40opt?= =?us-ascii?Q?out=2Eexample=2Ecom=3E?=Questa codifica interrompe l’analisi dei link di annullamento dell’iscrizione sia in Gmail che in Outlook. Di conseguenza, i destinatari non possono annullare facilmente l’iscrizione tramite gli elementi dell’interfaccia utente, il che può portare a tassi di reclamo più elevati e a un posizionamento inferiore nella posta in arrivo. Peggio ancora, la visualizzazione “Mostra originale” di Gmail decodifica l’intestazione, quindi inizialmente si potrebbe non essere consapevoli della riscrittura.
Questo comportamento viola:
RFC 2047, che proibisce le parole codificate nelle intestazioni strutturate come List-Unsubscribe.
RFC 2369, che definisce la sintassi e la struttura dell’intestazione List-Unsubscribe e presuppone la parsabilità in ASCII semplice.
Un esempio di intestazione list-unsubscribe che Discourse invia è:
List-Unsubscribe: <https://meta.discourse.org/email/unsubscribe/abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijkl>
Ci sono 64 caratteri solo nel token univoco, quindi è garantito che i link di annullamento dell’iscrizione che inviamo supereranno i 77 caratteri.
Non usiamo SendGrid ma so che molti dei nostri self-hoster lo fanno, quindi penso sia importante renderlo noto a tutti qui.
Ci sono utenti SendGrid qui che possono confermare questo comportamento?
