What are inline attachments?
Still have a question, spotted an error, or have a better explanation or a source we should cite?
An inline attachment is an image (or other file) that displays directly in the email body, not as a downloadable file at the bottom. You see the logo, the product photo, the header image right there in the message. That's inline.
How they work: the image travels inside the email as encoded data, referenced by a Content-ID (a unique identifier like cid:logo@yourcompany.com). Your HTML uses that Content-ID to place the image exactly where you want it. The recipient's email client decodes it and renders it inline.
This is different from linking to an externally hosted image (like <img src="https://yourwebsite.com/logo.png">), which most email clients block by default. Inline attachments bypass that initial block because the image is already part of the message.
When inline attachments make sense: transactional emails where you absolutely need the logo or invoice to appear immediately, no matter what. Password reset emails from Postmark often use inline images for the company logo so branding shows up even with images disabled.
When they don't: marketing emails with lots of photos. Inline attachments make the email file size massive, which can trigger spam filters and slow down delivery. Hosting images on a CDN and linking to them is usually the better move for newsletters.
Still the deliverability trade-off: inline attachments add weight to your message. A 2MB email with six inline photos will take longer to send, longer to receive, and might hit size limits at some mailboxes (some caps are as low as 10MB total). If your inline images push the message over those limits, it bounces.
Most ESPs (Mailchimp, Klaviyo, Brevo) host your images automatically and don't use inline attachments at all. They optimize delivery by keeping the email small and letting the client fetch images from their CDN. That's usually the right call for marketing.
And if you're building custom transactional emails and want inline images, keep them small (under 100KB each), use only what's essential (logo, maybe a button), and test across clients. Litmus or Email on Acid will show you how different inboxes handle them.
Next step: if you're troubleshooting why an image isn't showing up inline, check your MIME structure with our Source Analyzer. You'll see whether the Content-ID matches your HTML reference.
Contributors
Who worked on this answer
Every name links to their profile. Every company links to their site. Real people, real accountability.