マルチパーパス・インターネット・メール・エクステンション (MIME) プロトコル

MIME ヘッダーの理解

MIME ヘッダーにはプロトコルに関する情報が含まれます。

MIME バージョン

これはメッセージが MIME 形式であることを示します。次のように表示されます:

MIME-Version: 1.0

コンテンツタイプ

これはメッセージのコンテンツタイプを示し、タイプとサブタイプのペアで表されます(例: text/plain、text/html)。multipart コンテンツタイプは、テキスト、HTML、添付ファイル、画像、音声、動画などを含むことができます。

Content-Type: multipart

コンテンツ転送エンコーディング

Content-Type で指定されたエンコーディングの上に、バイナリからテキストへのエンコーディング方式が使用されているかどうかを示します。使用されている場合はその方式を示します。ここでは 7-bit、8-bit、binary のコーディングタイプを指定できます。

エンコード語

SMTP メッセージのヘッダーは通常 ASCII 文字を使用します。非 ASCII 文字はリテラル文字列の代わりに MIME エンコード語法を使用する必要があります。形式は次のとおりです:

"=? charset ? encoding ? encoded text ?="。

マルチパート メッセージ

MIME マルチパートメッセージは、Content-Type ヘッダーに境界線(boundary)を含みます。この境界線は、どのパートにも出現してはならず、パート間およびメッセージ本文の開始と終了に配置されます。例:

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--

各パートはそれぞれのコンテンツヘッダーと本文で構成されます。

マルチパート サブタイプ

MIME 標準はさまざまな multipart メッセージのサブタイプを定義しています。サブタイプは全体メッセージの "Content-Type" ヘッダーで指定されます。

以下は、最も一般的に使用されるサブタイプの一覧です。

  • Mixed:Multipart/mixed は、異なる "Content-Type" ヘッダーを持つファイルをインラインで送信する際に使用されます。画像や他の簡単に表示できるファイルを送信すると、ほとんどのメールクライアントはそれらをインラインで表示します。
  • Message:メッセージパートは電子メールメッセージを含みます。
  • Digest:Digest は複数のテキストメッセージを送信するシンプルな方法です。各パートのデフォルトの Content-Type は "message/rfc822" です。
  • Alternative:Alternative サブタイプは、各パートが同一(または類似)内容の「代替」バージョンであり、異なるフォーマットはそれぞれの "Content-Type" ヘッダーで示されることを示します。

最も一般的に使用される multipart/alternative は、プレーンテキスト (text/plain) と HTML (text/html) の 2 部構成のメールに使用されます。プレーンテキスト部分は下位互換性を提供し、HTML 部分は書式設定やハイパーリンクの使用を可能にします。多くのメールクライアントはプレーンテキストを HTML より優先するオプションを提供しています。これは、ローカル環境の要因がアプリケーションの「最適」なメッセージ部分の選択に影響を与える例です。