Multipurpose Internet Mail Extensions

Ievads

E-pasta sūtīšanas protokols SMTP pieļauj vēstules tikai 7 bitu ASCII kodējumā. Tas bija pietiekami, rakstot tikai ar latīņu alfabēta burtiem. Citās valodās, kas izmantoja latīņu alfabētu, kurā iekļautas diaktriskās zīmes (izmantoti 8 biti kā ASCII papildkodējums), rakstīto nevarēja korekti attēlot e-pasta vēstulē (8. bits tika nonullēts). To atrisināja ar SMTP paplašinājumu 8BITMIME, kas tika publicēts 1994. gadā (RFC 1652).
E-pasta vēstules pamatformāts ir definēts RFC 2822, kas nosaka, kādā veidā jāveido sūtījuma galvenes lauki un ķermenis. MIME paredzēti papildu galvenes lauki, kurā paziņo par satura tipu, vēstules ķermeņa teksta kodējumu. MIME ir ietverts kodēšanas mehānisms galvenes laukiem, piemēram, "Subject", kas ļauj galvenē izmantot citu valodu simbolus.
MIME standarts ir paplašināms. Tajā ir noteikts, kādā veidā var reģistrēt jaunus satura tipus un citas MIME atribūtu vērtības.
MIME tika izstrādāts tādā veidā, lai eksistējošie pasta serveri varētu darboties bez izmaiņām, ļaujot sūtīt parasta teksta vēstules abos virzienos kā agrāk. Tas tika panākts, izmantojot papildu RFC 822 veida galvenes laukus visiem MIME atribūtiem un veidojot MIME galvenes laukus neobligātus ar vērtībām pēc noklusējuma, kas nodrošināja, ka MIME neatbilstošus sūtījumus korekti interpretēts MIME atbalstošs klients. Bez tam, vienkāršu MIME teksta vēstuli MIME neatbilstošs klients pareizi interpretētu, pat nezinot MIME lauku nozīmi, un tekstu, kas saturētu ASCII simbolus, lietotājs varētu izlasīt.

MIME versija

Galvene MIME-Version norāda, ka sūtījums ir formatēts MIME standartā. Tā vērtība parasti ir "1.0". Galvene tiks parādīta:
MIME-Version: 1.0

Vairākdaļu apakštipi

MIME standarts paredz dažādus vairākdaļu sūtījuma apakštipus, kuru raksturo vēstules daļas un to saistību vienai ar otru. Apakštipu norāda visa sūtījuma Content-Type galvenē. RFC sākotnēji definēja četrus apakštipus: mixed, digest, alternative un parallel. Minimālā prasība pasta programmām ir tāda, ka tām jāatbalsta mixed un digest, citi apakstipi nav obligāti. Citi apakštipi tika definēti vēlāk.
Zemāk ir apskatīti biežāk lietotie apakštipi.

Mixed

Multipart/mixed tiek lietoti, lai sūtītu failus ar iekļautām dažādām Content-Type galvenēm (jeb kā pievienojums). Ja tiek pārsūtīti attēli vai citi viegli lasāmi faili, vairums mūsdienu klientprogrammu var tos attēlot iekļautajā skatītājā. Citādi tie tiks piedāvāti kā pievienojumfaili. Pēc noklusējuma satura tips katrai daļai ir text/plain
Definēts RFC 2046, sekcija 5.1.3

Digest

Multipart/digest ir vienkāršs veids, kā sūtīt saliktas teksta vēstules. Pēc noklusējuma satura tips katrai daļai ir message/rfc822
Definēts RFC 2231, sekcija 5.1.5

Alternative

Multipart/alternative rāda, ka katra daļa ir "alternatīva" versija vienam un tam pašam (vai līdzīgam) saturam, katra dažādā formātā, kas noteikts tās Content-Type galvenē. Šis formāts ir paredzēts, lai formatētam saturam līdzi tiktu "dots" arī oriģināls, ar "uzticamāko" (vienkārša teksta variantā) vispirms, un "mazāk uzticamo" beigās. Sistēma attēlošanai izvēlas labāko sūtījuma daļu, ja labāko daļu klientprogramma nespēj apstrādāt, tiek parādīta vienkāršākā daļa. Tas dod iespēju vēstuli vienkāršāk izlasīt lietotajiem, kuru klienti neatbalsta vairākdaļu sūtījumus.
Visbiežāk alternatīvo veidu izmanto HTML e-pasta sūtīšanai. To sagatavo no divām daļām: pirmajā ir vienkāršais teksts (text/plain), otrajā ir teksts, formatēts HTML (text/html). Ja klients neatbalsta HTML formatēšanu, tas parādīs vēstuli kā vienkāršu tekstu, HTML atbalstošs parādīs līdzīgu kā HTML lapu.
Definēts RFC 2046, sekcija 5.1.4

Related

Multipart/related izmanto, lai informētu, ka sūtījuma daļas nav jāapskata individuāli, bet gan ka tās ir daļas no viena vesela. Vēstule sastāv no "saknes" daļas (pēc noklusējuma pirmās), kas norāda uz citām iekļautajām daļām, kuras savukārt var saistīt citas daļas. Sūtījuma daļas parasti saista ar daļas galveni Content-ID. Atsauces sintakse nav noteikta, un to nosaka atkarībā no kodējuma vai protokola, kuru izmanto saistāmajā daļā.
Šo apakštipu plaši izmanto, lai sūtītu vēstuli kā tīmekļa lappusi kopā ar attēliem. Saknes daļai jāsatur HTML dokuments, un tajā ietvertie attēlu tagi atsaucas uz attēliem, kas ir saglabāti nākamajās daļās.
Definēts RFC 2387

Report

Multipart/report ir sūtījuma tips, kas paredzēts e-pasta servera informēšanai. Tas ir sadalīts divās daļās, no kurām viena ir text/plain (vai cits viegli lasāms satura tips), bet otra ir message/delivery-status, kura satur īpaši e-pasta serverim formatētus datus.
Definēts RFC 3462

Signed

Multipart/signed lieto, lai sūtījumam pievienotu ciparu parakstu. Tas sastāv no divam daļām: ķermeņa daļas un paraksta daļas. Ir iespējami daudzi paraksta tipi, piemeram, application/pgp-signature, application/x-pkcs7-signature.
Definēts RFC 1847, sekcija 2.1

Encrypted

Multipart/encrypted izmanto, lai sūtītu šifrētu vēstuli. Pirmā daļa satur kontrolinformāciju, kas nepieciešama, lai atšifrētu application/octet-stream otro daļu.
Definēts RFC 1847, sekcija 2.2

Form Data

Multipart/form-data ir paredzēts vērtību nosūtīšanai ar formas palīdzību. Sākotnēji tas ir definēts kā daļa no HTML 4.0, un tiek plaši lietots, lai nodotu failus ar HTTP.
Definēts RFC 2388