初期のインターネットメールはASCIIのみだったため、メッセージ本文は、すべてのクライアントが同意する形で画像やファイルを運ぶことができなかった。MIME(Multipurpose Internet Mail Extensions)はそれを変えるために考案された。

MIMEはカーネギーメロン大学のAndrew Messaging Systemからクロスプラットフォームのデータ形式として生まれ、共同考案者のNathaniel Borensteinらによって1992年6月にRFC 1341として最初に仕様化された。現在の版は1996年のRFC 2045/2046/2047のセットである。

その設計は意図的に小さかった。Content-Typeヘッダーはそのパートが何であるかを示し、Content-Transfer-EncodingはバイナリをASCIIに変換し、マルチパート境界は1つの本文に多数のパートを含めることを可能にする。メッセージは従来どおりSMTPで送られる。

拡張がヘッダーベースで任意だったため、各クライアントは独自のスケジュールでサポートを追加でき、MIMEはすぐに添付ファイルやリッチテキストメールを送る標準的な方法となり、後にウェブ自身のcontent-typeの考え方の基礎ともなった。

本文が何であるかを示すヘッダーを追加する

content-typeヘッダーは受信者にそのパートが何であるかを伝えるため、規則に従ってデコードできる

base64により任意のバイナリがASCIIのみの転送を通過できる

マルチパート境界により1つのメッセージでテキストと添付ファイルを一緒に保持できる

変更がヘッダーレベルだったため、導入には共通の一斉切り替えを必要としなかった

広く展開されたシステムを拡張するには、新しいシステムではなく、小さく任意の構造を追加する。ペイロードが何であるかを示すヘッダーがあれば、各実装者が独自に採用できる。

MIMEはメール添付ファイルの普遍的なコンテナとなり、Content-Typeヘッダーがウェブリソースを記述するためにその考え方を借用した理由でもある。元の仕様はプレゼンテーションについて薄かったため、Content-DispositionがRFC 2183で追加された。実際には、多くのクライアントは標準の助言ではなく独自のロジックで表示するパートを選んでいる。

出典をたどる

出典

  1. Multipurpose Internet Mail Extensions (MIME) Part One (RFC 2045) IETF / rfc-editor.org · rfc-editor.org
  2. MIME — Wikipedia Wikipedia · en.wikipedia.org