Protokol Multipurpose Internet Mail Extensions (MIME)
Multipurpose Internet Mail Extensions (MIME) je internetový standard, který rozšiřuje formát e‑mailu o podporu:
- text v znakových sadách jiných než US-ASCII;
- ne‑textové přílohy;
- vícedílné tělo zprávy; a
- informace v hlavičce v ne‑ASCII znakových sadách.
SMTP podporuje pouze 7‑bitové ASCII znaky, což v podstatě znamená, že podporuje jen omezený počet jazyků. Jazyky založené na latinské abecedě jsou v SMTP v pořádku; ostatní jazyky se při doručení e‑mailu nezobrazí správně. MIME však rozšiřuje podporu ASCII znaků v SMTP tak, aby e‑maily používající jiné znakové sady, obrázky a zvuky mohly být odesílány a zobrazovány. Obecně všechny e‑mailové klienty a SMTP servery správně mapují zprávy ve formátu MIME.
Pochopení hlaviček MIME
Hlavičky MIME obsahují informace o protokolu.
MIME-Version
Označuje, že zpráva je ve formátu MIME. Zobrazuje se jako:
MIME-Version: 1.0
Content-Type
Označuje typ obsahu zprávy jako dvojici typ/subtyp: např. text/plain, text/html. Multipart typ obsahu může obsahovat text, HTML, přílohy, obrázky, audio, video a podobně.
Content-Type: multipart
Content-Transfer-Encoding
Určuje, zda je nad specifikací content-type použito kódování binárního → textového typu. Pokud ano, uvádí, které. Zde lze zadat typ kódování 7‑bit, 8‑bit a binární.
Encoded‑Word
Hlavičky zpráv SMTP běžně používají ASCII znaky. Ne‑ASCII znaky musí používat syntaxi MIME encoded‑word místo literálního řetězce. Formát je:
"=? charset ? encoding ? encoded text ?=".
Multipart zprávy
MIME multipart zpráva obsahuje v hlavičce content-type ohraničovač. Tento ohraničovač, který se nesmí vyskytovat v žádné z částí, je umístěn mezi částmi a na začátku a konci těla zprávy, následovně:
MIME-version: 1.0
Content-type: multipart/mixed; boundary="frontier"
This is a multi-part message in MIME format.
--frontier
Content-type: text/plain
This is the body of the message.
--frontier
Content-type: application/octet-stream
Content-transfer-encoding: base64
PGh0bWw+CiAgPGhlYWQ+CiAgPC9oZWFkPgogIDxib2R5PgogICAgPHA+VGhpcyBpcyB0aGUg
Ym9keSBvZiB0aGUgbWVzc2FnZS48L3A+CiAgPC9ib2R5Pgo8L2h0bWw+Cg==
--frontier--
Každá část se skládá ze své vlastní hlavičky obsahu a těla.
Multipart podtypy
Standard MIME definuje různé podtypy multipart‑zpráv. Podtyp je uveden v hlavičce "Content-Type" celé zprávy.
Níže je seznam nejčastěji používaných podtypů.
- Mixed: Multipart/mixed se používá pro odesílání souborů s různými hlavičkami "Content-Type" vložených přímo. Při odesílání obrázků nebo jiných snadno čitelných souborů je většina poštovních klientů zobrazí vložené.
- Message: Část zprávy obsahuje e‑mailovou zprávu.
- Digest: digest je jednoduchý způsob, jak posílat více textových zpráv. Výchozí typ obsahu pro každou část je "message/rfc822".
- Alternative: Podtyp alternative naznačuje, že každá část je "alternativní" verzí stejného (nebo podobného) obsahu, každá v jiném formátu určeném hlavičkou "Content-Type".
Nejčastěji se multipart/alternative používá pro e‑mail se dvěma částmi, jednou prostým textem (text/plain) a jednou HTML (text/html). Část s prostým textem zajišťuje zpětnou kompatibilitu, zatímco část HTML umožňuje formátování a hypertextové odkazy. Většina e‑mailových klientů nabízí volbu upřednostnit prostý text před HTML; to je příklad toho, jak místní faktory mohou ovlivnit, kterou „nejlepší“ část zprávy aplikace zobrazí.