Skip to content

/ Learn — Deliverability

The missing plain-text part is real — and smaller than you think.

An HTML-only email trips a spam rule, and the plain-text part it's missing is a baseline worth having. But it's a small signal, not a magic bullet. What MIME and multipart/alternative are, how the parts nest, what HTML-only actually costs, and what filters really penalize.

Published 2026-07-04 Reading time ~14 min Level Operator Updated 2026-07-04

/ TL;DR

A well-formed marketing email is a multipart/alternative MIME message: one envelope carrying both a text/plain and a text/html version of the same content, with the text part first and the HTML part last, so each client renders the best version it supports. Sending HTML-only trips a small spam rule and forfeits the fallback.

But be honest about the weight. The plain-text part is a baseline signal, not a deciding one — its direct deliverability impact has faded as filters matured, and reputation, authentication, and list quality dominate the outcome. A clean HTML email from a good sender lands; a spammy one fails, text part or not.

What still hurts is bigger: image-only emails and poor image-to-text ratios that filters can't scan, broken HTML, and a plain-text part that's auto-generated garbage or diverges from the HTML. Include a real, readable text part, keep the two versions in parity, and spend your effort on the factors that actually move placement.

/ 01

What MIME and multipart are

Plain email was originally just ASCII text. MIME — Multipurpose Internet Mail Extensions — is the standard that extended it to carry everything else: other character sets, formatting, images, attachments, and multiple versions of a message in one envelope. Nearly every email you send today is a MIME message, whether or not you ever think about it.

The piece that matters for marketing and transactional mail is multipart/alternative. It lets a single email contain more than one rendering of the same content — in practice a text/plain version and a text/html version — and leaves it to the receiving client to choose which to show. A client that can render HTML displays the HTML; one that can't, or a user who prefers text, sees the plain version instead. Both are present; the recipient only ever sees one.

The idea was practical from the start: guarantee a readable message regardless of what the recipient's software could do. That original rationale — some clients simply couldn't display HTML — matters less now that almost everything can. What survives is a set of smaller reasons the text part still earns its place, and a set of much larger content factors that decide placement no matter how your parts are arranged.

/ 02

Anatomy of a message

A multipart/alternative message is simpler than it looks. An outer header declares the type and a boundary string, then each version appears as a part introduced by that boundary, with its own content type and encoding:

Content-Type: multipart/alternative; boundary="b1"

--b1
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Welcome to the list. Confirm here: https://...

--b1
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: quoted-printable

<p>Welcome to the list. <a href="https://...">Confirm</a></p>

--b1--

A few details in there carry weight. The order is significant: the standard says parts go in increasing order of preference, so the plain-text part comes first and the HTML part last, and a capable client renders the last part it understands. The boundary can be any unique string — random or a UUID is conventional — and the same string marks every part, with a trailing -- closing the block.

The Content-Transfer-Encoding — usually quoted-printable or base64 — describes how each part's bytes are packaged so they survive transport intact, and the charset declares the character encoding. You rarely write this by hand — your platform assembles it — but recognizing the shape lets you read a raw message and see whether both parts are present and sensible. Our email header analyzer lays this structure out for a real message so you don't have to parse it by eye.

/ 03

Alternative, mixed, related

"Multipart" isn't one thing — there are several multipart types, and confusing them is behind a lot of "why does my attachment render inside the body" head-scratching. Three matter for email:

multipart/alternative holds different versions of the same content, and the client picks one to show — this is the text-plus-HTML case above. multipart/mixed holds different, independent parts that are all meant to be presented together, most often a message body plus attachments. multipart/related holds an HTML part together with resources it references — inline images embedded in the message and pulled in by a content ID rather than downloaded from a URL.

Real messages nest these. An email with both text and HTML bodies and a PDF attached is typically an outer multipart/mixed wrapping a multipart/alternative — the alternative holding the two body versions, the mixed adding the attachment beside it. Add inline images and a multipart/related joins the nesting. You don't assemble this tree yourself, but understanding it explains a great deal: why an inline logo shows in one client and appears as an attachment in another, or why a raw message looks so deeply structured. The one to get right deliberately is the alternative layer — the text-and-HTML pairing filters and clients care about most.

/ 04

What HTML-only costs

Let's be precise about the actual penalty, because it's both real and frequently overstated. An HTML-only message — HTML part, no text part — trips a specific SpamAssassin rule, MIME_HTML_ONLY, which adds a small fixed amount to the message's spam score. That contribution is minor on its own; it matters only when you're already close to the threshold from other problems, at which point a small addition can tip you over.

There's a companion trap worth naming. If you "add a text part" that only says something like this email is best viewed in HTML, filters treat it as no text part at all — a separate rule scores the placeholder the same as an absence. So a token text part earns you nothing; the part has to be a genuine, readable rendering of the message to count. Half-measures here are indistinguishable from doing nothing.

Beyond the score, HTML-only forfeits the practical fallbacks: the readers on text-only or older clients, the security configurations that strip HTML, the screen readers and mobile notification previews that reach for the text. None of those is large by itself, and together they still don't add up to a make-or-break factor. The honest summary: HTML-only is a minor negative that accumulates with others rather than a standalone cause of the spam folder — the point most guides skip.

/ 05

Not a magic bullet

Here's the part a lot of advice won't tell you plainly: the plain-text part is nowhere near as decisive as its reputation suggests, and its influence has faded further every year. The rule that HTML-only mail is penalized dates from an era when spam filtering leaned heavily on parsing message structure. Filtering has moved on. In 2026 the major receivers run machine-learning systems weighing dozens of signals at once, and a clean, well-coded HTML email from a sender with good standing lands in the inbox with or without a text part.

What decides placement is the same short list it always comes back to: sender reputation, authentication with SPF, DKIM, and DMARC, recipient engagement, and the quality of your list. Those factors dwarf the format question. A sender with a strong reputation and clean authentication has enormous latitude in how they format mail; a sender with a poor reputation won't be saved by a perfectly-formed text part. The format is a rounding error next to who you are and how people respond to you.

This isn't an argument for dropping the text part — it's an argument for right-sizing it. Include it, because it's cheap and it does help at the margins. But if you're chasing an inbox-placement problem, the plain-text part is close to the last place to look. Spend the time on your reputation, your authentication, and your list hygiene first, and treat MIME structure as hygiene you fix once and forget.

/ 06

What actually hurts

If the text part is a rounding error, the content problems that share its neighborhood are not — and they're the ones worth your attention. The biggest is the image-only email: a message that's one big image with almost no real text. Filters can't read what's inside an image the way they read text, so an image-only message denies them the content they need to judge it, and they treat that opacity as suspicious. The close relative is a poor image-to-text ratio — lots of images, little text — which raises the same flag to a lesser degree.

Then there's the HTML itself. Broken or sloppy markup — unclosed tags, tangled nesting, bloated inline CSS — reads as low-quality or machine-generated and can nudge filtering the wrong way, quite apart from rendering badly across clients. Too many links, especially to many different domains, is another content-level trigger. These are all things a text part does nothing to offset; they live in the HTML and the design.

And there's the failure that hides inside the fix itself: a divergent or garbage plain-text part. When the text version is auto-generated badly — bold text flattened to ALL CAPS, which some filters read as shouting, or content stripped into disjointed fragments — it can read as low quality, and when it says something materially different from the HTML, that mismatch between the two halves is itself a signal filters learned to distrust. A careless text part can be marginally worse than none — the irony of treating it as a box to tick.

/ 07

What to actually do

The practical routine is short and mostly one-time. Send multipart/alternative with a real text part and an HTML part — nearly every sending platform does this by default, so the job is usually to confirm it's happening rather than to build it. Then, because auto-generation is where it goes wrong, read the generated text part once for a representative template: check that it's a coherent rendering of the HTML, not fragments or shouting, that it carries the same content and offer, and that its links are the same HTTPS destinations as the HTML.

On the HTML side, keep the markup clean, keep a healthy amount of real text alongside your images rather than shipping a single graphic, and keep your link count and destinations reasonable. That handful of habits clears essentially all of the structure-and-content risk. Everything past it is reputation, authentication, and list quality — the factors that actually decide placement, and where any remaining effort belongs.

When you want to see what a receiver sees, inspect a real message: our email header analyzer shows the MIME structure, whether both parts are present, and how the message is put together, and the why emails go to spam guide covers the content signals that outrank format. Getting structure right once and then keeping the factors that matter healthy as you scale is the standing operation we run.

/ 08 — FAQ

Do I still need a plain-text version of my HTML email?
Yes — include one, but hold a realistic view of what it does. A real, readable plain-text part is a low-cost baseline that helps in several small ways: it's a mild positive signal to content filters, it's what old or text-only clients and some security setups fall back to, screen readers and mobile notification previews often use it, and its absence trips a specific spam rule. What it isn't is a deciding factor in whether you reach the inbox. The direct deliverability weight of the plain-text part has faded as filters got smarter, and sender reputation, authentication, and list quality now dominate the outcome by a wide margin. So include it as cheap insurance and good practice, not as a rescue for a campaign with deeper problems.
What exactly does sending HTML-only cost me?
Concretely, an HTML-only message trips SpamAssassin's MIME_HTML_ONLY rule, which adds a small amount to the spam score — meaningful only if you're already near the threshold from other issues. There's a related trap: a plain-text part that just says 'view this email in HTML' is treated as if it were missing entirely, scoring the same as no text part, so a placeholder buys you nothing. Beyond the rule itself, HTML-only mail forfeits the fallback and accessibility benefits of a text part. In practice, HTML-only rarely sinks a message on its own; it's a minor negative that adds up alongside larger problems. A clean, well-coded HTML email from a reputable sender lands fine, and a spammy one fails whether or not it carries a text part.
What's the difference between multipart/alternative and multipart/mixed?
They solve different problems and often appear together. Multipart/alternative carries several versions of the same content — typically a text/plain and a text/html rendering of one message — and the receiving client picks the single best version it can display, showing only that one. Multipart/mixed carries different, independent parts that are all meant to be presented, most commonly a message body plus one or more attachments. A real marketing email frequently nests them: an outer multipart/mixed holds an attachment alongside a multipart/alternative that in turn holds the text and HTML bodies. There's also multipart/related, used when your HTML references inline images embedded in the message itself rather than linked externally. Knowing which is which matters when you read a raw message or debug why an attachment or inline image renders oddly.
Which part does the email client actually display?
For multipart/alternative, the client shows the single version it considers best that it's able to render, and the ordering in the message tells it what 'best' means. The standard says parts should appear in increasing order of preference, so the plain-text part comes first and the HTML part comes last; a client capable of HTML renders the last part it understands, and one that can't falls back to the earlier text part. Some clients also let the user force a plain-text preference, which overrides that default. This is why order isn't cosmetic — putting the HTML part first can cause capable clients to miss it. The takeaway: follow the convention — text first, HTML last — and let each client resolve the choice as designed.
My ESP auto-generates the plain-text part — is that fine?
Usually workable, but worth a glance before you trust it, because auto-generation is where a helpful feature quietly backfires. Most sending platforms will build a text version from your HTML automatically, and much of the time it's acceptable. The failure modes are specific: some generators turn bold text into ALL CAPS, which Microsoft's filters can read as aggressive shouting; others strip content unevenly and leave disjointed fragments that read as nonsensical, which is itself a mild suspicion signal because the two parts no longer match. The fix costs a few minutes per campaign: review the generated text, make sure it's a coherent rendering rather than garbage, keep the two versions consistent, and use HTTPS links. That review prevents a class of problems many teams never realize they have.
Does content parity between the two parts matter?
Yes, and in both directions. The parts are supposed to represent the same message, and when they diverge sharply, that mismatch is a spam signal in its own right — historically because abusers put innocent text in the plain part and their real payload in the HTML, so filters learned to distrust messages whose two halves tell different stories. Keeping parity protects you from that suspicion. It also protects the recipients who actually see the text part: if your plain-text version is a stripped or outdated shadow of the HTML, those readers get a worse message. Parity doesn't mean identical formatting, impossible across the two formats — it means the same content, offer, and links, expressed appropriately in each. Treat the text part as a real version, not an afterthought.

Get the structure right once. Then stop worrying about it.

A real plain-text part, clean HTML, and a sane image-to-text ratio clear almost all of the structure risk — and none of it will save mail from a weak reputation or a dirty list. Knowing where MIME hygiene ends and the factors that actually move placement begin is the standing operation we run. Inspect a real message, then let's fix what counts.

Book infrastructure review