What is multipart/alternative vs multipart/mixed?

Still have a question, spotted an error, or have a better explanation or a source we should cite?

When you send an email, you're not actually sending a single thing. You're sending a package that might contain multiple versions of your message (text and HTML), attachments, or both. multipart/alternative and multipart/mixed are MIME types that tell the receiving email client how to unpack that bundle.

multipart/alternative means you're offering the same content in multiple formats. The most common case: you send both a plain text version and an HTML version of your message. The recipient's email client picks one to display (usually HTML, but falls back to plain text if HTML isn't supported or the reader has images disabled). The key word is alternative. These are versions of the same thing, not separate items.

multipart/mixed means you're bundling different things together. A message body plus file attachments. A receipt email plus a PDF invoice. These are not alternatives to each other. They're distinct pieces of content packaged into one email.

You can combine them. An email with HTML and plain text versions plus a PDF attachment would use multipart/mixed as the outer wrapper, with a multipart/alternative section inside for the body. Most modern ESPs (Mailchimp, SendGrid, Postmark) handle this structure automatically when you upload an attachment or enable plain text fallback.

Why this matters for deliverability: spam filters check MIME structure. A missing plain text alternative can look suspicious (though it's rare to get filtered for that alone). More commonly, broken MIME boundaries or mismatched content types cause rendering failures. If your email shows up as blank or displays raw code, it's often a MIME structure error.

If you're debugging a rendering issue, check the raw email source with our Email Header Analyzer. Look for the Content-Type header at the top. It should match what's actually inside the message. You'll also see boundaries (random strings that separate parts of the message). If those are broken or inconsistent, that's your culprit.

Most senders never touch MIME structure directly. Your ESP builds it for you. But if you're using custom SMTP or building emails programmatically, getting this wrong will cause silent failures (emails that deliver but don't render). Test across multiple clients (Gmail, Outlook, Apple Mail) to catch MIME issues before they reach subscribers.

Contributors

Who worked on this answer

Every name links to their profile. Every company links to their site. Real people, real accountability.

Ask an AI · tailored to your setup

Get a MIME structure audit for your setup

I read this on the Email Almanac about multipart/alternative vs. multipart/mixed: "multipart/alternative means you're offering the same content in multiple formats (text and HTML). The recipient's email client picks one to display. multipart/mixed means you're bundling different things together, like a message body plus file attachments." Help me understand how this applies to MY specific situation. Based on what I share below, tell me: 1. MIME structure audit: Does my current setup handle multipart correctly? What should I check in my ESP settings or code? 2. Rendering test checklist: Which email clients should I test to catch MIME structure issues before they reach subscribers? 3. Plain text strategy: Should I include plain text alternatives for my emails, and how do I verify they're being generated correctly? 4. Attachment best practices: If I'm sending attachments, how do I confirm the MIME structure is correct and won't cause rendering failures? My details: - Email platform/ESP: e.g. Mailchimp, SendGrid, custom SMTP, transactional API - Sending method: ESP interface, API, custom code - Email types: [marketing campaigns, transactional, receipts with PDFs, newsletters] - Attachments: yes/no, file types if yes - Plain text versions: auto-generated by ESP, manually created, not included - Current issue: [describe any rendering problems, blank emails, or raw code display] - Testing tools available: Litmus, Email on Acid, manual testing, none

Edit the yellow boxes, then send to the AI of your choice.