Протокол за мултицелеви интернет пощенски разширения
Multipurpose Internet Mail Extensions (MIME) е интернет стандарт, който разширява формата на имейлите, за да поддържа:
- текст в кодировки, различни от US-ASCII;
- не‑текстови прикачени файлове;
- многокомпонентни тела на съобщения; и
- информация за заглавки в не‑ASCII кодировки.
SMTP поддържа само 7‑битови ASCII символи, което ефективно означава, че поддържа само малък набор от езици. Езиците, базирани на латинската азбука, са приемливи за SMTP; други езици не се визуализират правилно при доставяне на имейла. MIME обаче разширява поддръжката на ASCII символи в SMTP, позволявайки изпращане и визуализиране на имейли с други кодировки, изображения и звуци. Обикновено всички имейл клиенти и SMTP сървъри правилно обработват съобщения във формат MIME.
Разбиране на MIME заглавните части
MIME заглавните части съдържат информация за протокола.
MIME-Version
Това указва, че съобщението е във формат MIME. Появява се като:
MIME-Version: 1.0
Content-Type
Това указва типа на съдържанието на съобщението, зададен като двойка тип‑подтип: например text/plain, text/html. Типът multipart може да съдържа текст, HTML, прикачени файлове, изображения, аудио, видео и др.
Content-Type: multipart
Content-Transfer-Encoding
Указва дали се използва схема за кодиране от двоично в текст, върху тази, зададена от content-type. Ако е така, указва коя. Тук можем да зададем 7‑bit, 8‑bit или binary тип кодиране.
Encoded-Word
Заглавните части на SMTP съобщения обикновено използват ASCII символи. Не‑ASCII символи трябва да се кодират с MIME синтаксис за кодираната дума вместо като буквален низ. Форматът е:
"=? charset ? encoding ? encoded text ?=".
Multipart-съобщения
MIME multipart съобщение съдържа граница (boundary) в хедъра за тип на съдържанието. Тази граница, която не трябва да се появява в никоя от частите, се поставя между частите и в началото и края на тялото на съобщението, както следва:
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--
Всяка част се състои от свой собствен хедър за съдържание и тяло.
Подтипове на multipart
MIME стандартът определя различни подтипове на multipart съобщения. Подтипът се задава в хедъра „Content-Type“ на цялото съобщение.
По-долу е списъкът с най-често използваните подтипове.
- Mixed: Multipart/mixed се използва за изпращане на файлове с различни „Content-Type“ хедъри вградено. Ако се изпращат изображения или други лесно четими файлове, повечето пощенски клиенти ще ги покажат вградени.
- Message:Част от съобщението съдържа имейл съобщение.
- Digest: digest е прост начин за изпращане на множество текстови съобщения. По подразбиране типът на съдържанието за всяка част е "message/rfc822".
- Alternative:Подтипът alternative указва, че всяка част е „алтернативна“ версия на едно и също (или подобно) съдържание, всяка в различен формат, обозначен в хедъра „Content-Type“.
Най-често multipart/alternative се използва за имейл с две части – една обикновен текст (text/plain) и една HTML (text/html). Частта с обикновен текст осигурява съвместимост със стари системи, докато HTML частта позволява използване на форматиране и хипервръзки. Повечето имейл клиенти предлагат опция за предпочитане на обикновен текст пред HTML; това е пример за това как локалните фактори могат да влияят върху избора от приложението коя „най‑подходяща“ част от съобщението да се покаже.