Originalmente vi esto en la lista de mailop, pero también se publicó en Reddit. Extractos a continuación:
Si tiene problemas con la entrega en la bandeja de entrada de Gmail a pesar de tener encabezados limpios y una buena reputación, su ESP podría estar saboteando sus mensajes sin que usted lo sepa. El relé SMTP de SendGrid viola RFC 2047 y RFC 2369 al codificar MIME el encabezado List-Unsubscribe tan pronto como su valor excede los 77 bytes. Esto rompe los enlaces para darse de baja en Gmail y Outlook. El problema ha sido confirmado internamente pero sigue sin resolverse. SendGrid envía más de 100 mil millones de correos electrónicos al mes: este es un fallo masivo de cumplimiento de estándares con consecuencias en el mundo real para la entregabilidad y el cumplimiento.
…
Mientras este encabezado tenga 77 bytes o menos, SendGrid lo retransmitirá sin cambios. Pero cuando el valor alcanza los 78 bytes, su relé SMTP lo reescribe forzosamente utilizando la sintaxis de palabra codificada MIME (RFC 2047). Esa codificación está explícitamente prohibida en encabezados estructurados como List-Unsubscribe.
Esto es lo que SendGrid envía en su lugar:
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?=Esta codificación rompe el análisis de los enlaces para darse de baja tanto en Gmail como en Outlook. Como resultado, los destinatarios no pueden darse de baja fácilmente a través de los elementos de la interfaz de usuario, lo que puede generar tasas de quejas más altas y una menor entrega en la bandeja de entrada. Peor aún, la vista “Mostrar original” de Gmail decodifica el encabezado, por lo que uno puede no ser consciente de la reescritura inicialmente.
Este comportamiento viola:
RFC 2047, que prohíbe las palabras codificadas en encabezados estructurados como List-Unsubscribe.
RFC 2369, que define la sintaxis y estructura del encabezado List-Unsubscribe y asume la capacidad de análisis en ASCII plano.
Un ejemplo de encabezado list-unsubscribe que envía Discourse es:
List-Unsubscribe: <https://meta.discourse.org/email/unsubscribe/abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijkl>
Hay 64 caracteres solo en el token único, por lo que está garantizado que los enlaces para darse de baja que enviamos tendrán más de 77 caracteres.
No usamos SendGrid, pero sé que muchos de nuestros autoalojadores sí lo hacen, así que creo que es importante que todos aquí estén al tanto de esto.
¿Hay algún usuario de SendGrid aquí que pueda confirmar este comportamiento?
