Je l’ai vu à l’origine sur la liste mailop, mais il a également été publié sur Reddit. Extraits ci-dessous :
Si vous avez du mal à placer vos e-mails dans la boîte de réception Gmail malgré des en-têtes propres et une bonne réputation, votre ESP pourrait saboter vos messages à votre insu. Le relais SMTP de SendGrid viole les RFC 2047 et 2369 en encodant en MIME l’en-tête List-Unsubscribe dès que sa valeur dépasse 77 octets. Cela casse les liens de désabonnement dans Gmail et Outlook. Le problème a été confirmé en interne mais reste non résolu. SendGrid envoie plus de 100 milliards d’e-mails par mois - c’est un échec massif de conformité aux normes avec des conséquences réelles sur la délivrabilité et la conformité.
…
Tant que cet en-tête fait 77 octets ou moins, SendGrid le relaie inchangé. Mais lorsque la valeur atteint 78 octets, leur relais SMTP le réécrit de force en utilisant la syntaxe d’encodage de mots MIME (RFC 2047). Cet encodage est explicitement interdit dans les en-têtes structurés comme List-Unsubscribe.
Voici ce que SendGrid envoie à la place :
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?=Cet encodage casse l’analyse des liens de désabonnement dans Gmail et Outlook. Par conséquent, les destinataires ne peuvent pas facilement se désabonner via les éléments d’interface utilisateur, ce qui peut entraîner des taux de plaintes plus élevés et un placement moins bon dans la boîte de réception. Pire encore, la vue “Afficher l’original” de Gmail décode l’en-tête, de sorte que l’on peut initialement ignorer la réécriture.
Ce comportement viole :
RFC 2047, qui interdit les mots encodés dans les en-têtes structurés comme List-Unsubscribe.
RFC 2369, qui définit la syntaxe et la structure de l’en-tête List-Unsubscribe et suppose une analyse en ASCII brut.
Voici un exemple d’en-tête list-unsubscribe que Discourse envoie :
List-Unsubscribe: <https://meta.discourse.org/email/unsubscribe/abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijkl>
Il y a 64 caractères dans le jeton unique seul, donc il est garanti que les liens de désabonnement que nous envoyons dépasseront 77 caractères.
Nous n’utilisons pas SendGrid, mais je sais que beaucoup de nos auto-hébergeurs l’utilisent, donc je pense qu’il est important d’en informer tout le monde ici.
Y a-t-il des utilisateurs de SendGrid ici qui peuvent confirmer ce comportement ?
