Stoppen Sie die Einstufung eines mehrteiligen/bezogenen HTML-Wurzels als Anhang

FixEmailService
Verschifft
5. August 2026 um 01:33 UTC
Autor
Kamo
Ausschuss
2fda4ac

Jede transaktionale E-Mail, die wir mit einem inlined org Logo senden, ist in unserem eigenen angekommen /messages Betrachter mit einem richtigen Motiv und einem völlig leeren Körper. ist AttachmentPart() behandelt JEDE Teil mit einer Content-ID als Anhang. Die text/html ROOT eines Multiparts/Verwandten hat einen von Design Setzen Sie es so, dass der RFC 2387 start= Parameter auf den Körper zeigen kann, was sich erlaubt strengere Gateways und Outlook finden es. So walkParseMultipart klassifiziert den Körper als ein Anhang und weiter vorbei, bevor jemals den Text/html erreicht Body-Kandidaten-Zweig. htmlBody blieb null, und weil eine verwandte Sendung trägt keine text/einfache Alternative, textBody war auch null - der Betrachter hatte nichts zu geben. Verifiziert gegen die gelieferte Nachricht anstatt gefolgert: die rohe maildir-Datei hält eine gut geformte Multipart/related mit einem kompletten 4329-Byte text/html root (Content-ID <emailroot", 7bit, Grenzen intakt) und zwei base64 inline PNGs. Die Nachricht war nie das Problem; der Leser war es. Dies war bisher unsichtbar, weil transaktionale Post ohne Inline-Logos ist gesendet als SIMPLE non-multipart text/html-Nachricht, die getMessage() behandelt auf der "content instanceof String" Pfad und nie konsultiert ist AttachmentPart überhaupt. Die Content-ID-Regel gilt immer noch für alles, was kein Textkörper ist, also Inline-Logos bleiben aufgelistet und cid: Referenzen lösen sich weiter. Tests parse RAW MIME anstatt Teile mit setContent zusammenzubauen - das tut es nicht den Content-Type-Header schreiben, bis die einschließende Nachricht gespeichert ist, so dass ein zusammengesetzter Teil berichtet text/plain und jeder isMimeType("text/html") verzerrt still. A Fixture, die über den einen Kopf lügt diese Logik eingeschaltet wäre bestanden gegen den kaputten Code. Bestätigt: 4 der 6 scheitern ohne den Fix.

Alle Änderungen

Wie, was Sie sehen Versand?

Jedes dieser Updates landet automatisch in Ihrem Arbeitsbereich. Starten Sie frei und beobachten Sie es Woche für Woche wachsen.

Free Forever startenPreisgestaltung anzeigen