Serve inline image MIME parts and surface Content-ID metadata

FeatureEmailService
Shipped
May 9, 2026 at 7:00 PM UTC
Author
Kamo
Commit
255509a

Render <img src="cid:..."> in the messages UI by exposing the inline parts that the HTML body references. - AttachmentInfo gains contentId (without angle brackets) and inline flag. - parseMultipart and getAttachment share a single isAttachmentPart predicate and a recursive walker, so inline parts nested inside multipart/related are captured (and their indices stay aligned across the two methods). Previously the recursion overwrote the parent's attachments list, which also dropped real attachments in nested structures. - hasAttachment is now driven by non-inline parts only — signature logos no longer light up the paperclip on every message. - New endpoint GET **************** on both EmailController and SharedMailboxMailController; resolves cid via the parsed AttachmentInfo, streams the part with Content-Disposition: inline and Cache-Control: private, max-age=3600.

All changes

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing