Протокол розширень інтернет-пошти (MIME)

Розуміння заголовків MIME

Заголовки MIME містять інформацію про протокол.

MIME-версія

Це вказує, що повідомлення має формат MIME. Воно виглядає так:

MIME-Version: 1.0

Content-Type

Це вказує тип вмісту повідомлення, представлений парою тип‑підтип, наприклад text/plain, text/html. Тип multipart може містити текст, HTML, вкладення, зображення, аудіо, відео тощо.

Content-Type: multipart

Кодування передачі вмісту

Вказує, чи використовується схема кодування бінарного в текстовий формат поверх кодування, зазначеного в content-type. Якщо так, зазначає яку саме. Ми можемо вказати тип кодування 7-bit, 8-bit або binary.

Закодоване слово

Заголовки SMTP‑повідомлень зазвичай використовують ASCII‑символи. Несимвольні ASCII символи повинні використовувати синтаксис MIME encoded word замість буквального рядка. Формат такий:

"=? charset ? encoding ? encoded text ?=".

Multipart-повідомлення

MIME multipart повідомлення містить межу (boundary) у заголовку content-type. Ця межа, яка не повинна зустрічатися в жодній з частин, розміщується між частинами, а також на початку і в кінці тіла повідомлення, як показано нижче:

MIME-версія: 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: частина типу message містить електронний лист.
  • Digest: digest — це простий спосіб надсилати кілька текстових повідомлень. Тип вмісту за замовчуванням для кожної частини — "message/rfc822".
  • Alternative: Підтип alternative вказує, що кожна частина є «альтернативною» версією того самого (або схожого) вмісту, кожна у різному форматі, зазначеному в заголовку "Content-Type".

Найчастіше multipart/alternative використовується для листів з двома частинами: однією простим текстом (text/plain) та одною HTML (text/html). Частина простого тексту забезпечує зворотну сумісність, тоді як HTML‑частина дозволяє використання форматування та гіперпосилань. Більшість поштових клієнтів пропонують користувачеві опцію віддавати перевагу простому тексту над HTML; це приклад того, як локальні фактори можуть впливати на вибір «найкращої» частини повідомлення, яку відображає застосунок.