What is the “MIME-Version” header?

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

The MIME-Version header tells the receiving mail server which MIME standard the message follows. It's almost always MIME-Version: 1.0. This header signals that the email can contain multiple parts (text, HTML, images, attachments) instead of just plain text.

MIME stands for Multipurpose Internet Mail Extensions. Before MIME, email was plain text only. No formatting, no attachments, no images. MIME changed that by introducing a way to structure email into parts. One part could be plain text, another could be HTML, and another could be an attachment. The receiving system reads the MIME-Version header first to know it should parse the message as a structured multipart document instead of treating everything as raw text.

The version has been 1.0 since 1992 and has never changed. That's not because email stopped evolving. It's because MIME is flexible enough that new features get added through other headers (like Content-Type) rather than through version bumps. So MIME-Version: 1.0 is really just a flag that says "this message follows MIME rules."

Do you need to set this header manually? Almost never. Every modern ESP and mail library adds it automatically. Mailchimp, SendGrid, Postmark, HubSpot, even your Gmail client. They all add MIME-Version: 1.0 to outgoing messages without you touching it.

The only time you'd manually add it is if you're building raw SMTP messages from scratch in code. If that's you, just set MIME-Version: 1.0 at the top of your headers and move on. Don't overthink it.

Why does this header matter for deliverability? It doesn't directly affect whether your email lands in the inbox. But if it's missing and your message contains multipart content, some older mail servers might not parse the structure correctly. The result: broken formatting, missing images, or attachments that don't render. Modern mail servers are forgiving and will usually handle it anyway, but why risk it?

But if you're debugging a delivery issue and want to check whether MIME-Version is present, view the raw source of any email you've sent. You can do this in most inboxes by looking for "Show original" or "View source." The MIME-Version header should appear near the top, right after headers like From, To, and Subject. If it's missing and your email has attachments or HTML, that's a sign your sending system isn't formatting messages correctly. Worth checking with your ESP or developer.

One more thing: if you see MIME-Version: 2.0 in an email header, something is very wrong. That version doesn't exist. It's either a misconfigured system or someone hand-coding headers incorrectly. Stick with 1.0.

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 personalized help with MIME headers

I read this on the Email Almanac about the MIME-Version header: "The MIME-Version header (almost always 1.0) tells the receiving mail server that your email follows MIME standards and can contain multiple parts like text, HTML, images, and attachments. Every modern ESP adds it automatically." Help me understand how this applies to MY situation: 1. Do I need to manually set MIME-Version for my emails? 2. How do I check if my emails have this header? 3. What breaks if MIME-Version is missing? 4. Could a misconfigured MIME-Version header cause deliverability issues? --- My details (the more you share, the better the advice): - Email platform/ESP: e.g. Mailchimp, SendGrid, custom SMTP - Sending method: marketing campaigns, transactional emails, custom code - Email format: plain text only, HTML, HTML with attachments - Current issue: [e.g. broken formatting, missing images, attachments not rendering] - Experience level: beginner / intermediate / advanced

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