- Shipped
- 5 de agosto de 2026 a las 1:33 UTC
- Author
- Kamo
- Commit
- 2fda4ac
Cada correo electrónico transaccional que enviamos con un logotipo de orglined llegó en nuestro propio Visor /mensaje con un sujeto correcto y un cuerpo completamente vacío. esAttachmentPart() tratado CUALQUIER parte que lleva un Content-ID como adjunto. El text/html ROOT de una multiparte/relacionada tiene una por diseño. lo establece para que el parámetro RFC 2387 start= pueda apuntar al cuerpo, que es lo que permite Puertas de pasarelas más estrictas y Outlook encontrarlo. Así que walkParseMultipart clasificó el cuerpo como un apego y continuar más allá de ella antes de llegar al texto/html rama cuerpo-candidato. htmlEl cuerpo permaneció nulo, y debido a que un envío relacionado no lleva no texto/alternativa, textualBody también era nulo. El espectador no tenía nada que rendir. Verificado contra el mensaje entregado en lugar de inferir: el archivo postaldir en bruto tiene una multiparte bien formada con una raíz completa de 4329 de byte text/html (Content-ID .emailroot, 7bit, boundaries intacto) y dos PNGs en línea base64. El El mensaje nunca fue el problema; el lector lo fue. Esto era invisible hasta ahora porque el correo transaccional sin logotipos en línea es enviado como un mensaje SIMPLE non-multipart text/html, que getMessage() manijas en el El camino de la Térula y nunca consulta esEn absoluto, adjuntoPart. La regla Content-ID todavía se mantiene para todo lo que no es un cuerpo de texto, por lo que el Los logotipos en línea permanecen listados y cid: las referencias siguen resolviendo. Las pruebas analizan RAW MIME en lugar de ensamblo de piezas con setContent que no escribir la cabecera Content-Type hasta que el mensaje adjunto se guarde, por lo que un ensamblado parte reporta texto/llama y cada una de las ramas de la rama de texto/llaves y cada una de las ramas de "texto/html") falla silenciosamente. A fijación que se encuentra sobre la única cabecera en la que esta lógica se enciende habría pasado contra el código roto. Confirmado: 4 de los 6 fallan sin la solución.