FA-76353 / Email MIME structure / Member archive
Pick the part to render from multipart/alternative: charset default and case · case 03
Parts without a charset parameter, or with an upper-case charset name, are treated as unrenderable.
Case contract
Alternatives are ordered by increasing fidelity, so the LAST part whose effective type is in `supported` wins. A multipart/related alternative counts as its root type: the child whose cid equals the start parameter (which carries angle brackets, cids are stored bare) or else the first child. A text/* part is only renderable when its charset (default us-ascii, case-insensitive) is us-ascii, utf-8 or iso-8859-1. With nothing renderable the first part is shown as a fallback. Result {index, type, fallback}.
Why this case matters
Choosing the wrong alternative shows raw markup, a degraded body or an unreadable charset to the reader.
One recorded failure
Sample boundary fixtureThis sample comes from the broken implementation of a controlled reproducer.
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| richest supported last | {"fallback": true, "index": 0, "type": "text/plain"} | {"fallback": false, "index": 2, "type": "text/x-amp-html"} | Failed |
MEMBER ARCHIVE
The complete case is available to members.
This record includes three runnable implementations, regression fixtures, execution results, and source hashes.
Member access is invitation-based. Sign in with your invited account to inspect the sources.
Sign in to the archive ↗