MIMEマルチパート【MIME multipart】
概要
MIMEとは
電子メールの当初の仕様は欧文の文字列を送受信することのみを目的としていたため、日本では「半角英数字」として知られる「ASCII」文字コード規格に収録されたアルファベットや数字、記号文字などしか本文として記述することができなかった。
後にメールのデータ形式の仕様が拡張され、ASCII文字以外のデータを一定の変換規則でASCII文字列に置き換えることで、メールに日本語などの欧文以外の文字、画像など文字以外のデータを含めることができるようになった。メール中でデータ形式を指定するための仕様を「MIME」(Multipurpose Internet Mail Extensions)という。
MIMEマルチパートとは
初期のMIME規格では一通のメールに一つのコンテンツしか積載できなかったが、MIMEマルチパートの導入によって、一通のメールに任意の数のコンテンツを含めることができるようになった。HTML形式のメッセージとプレーンテキスト形式のメッセージ、本文と複数の添付ファイルなど、一通のメールにデータ形式の異なる様々な内容を盛り込むことができる。
メール冒頭のヘッダ内で、「Content-Type: multipart/サブタイプ; boundary="区切り文字"」といった形式の宣言を記述することで、複数のパートで構成されたメールとして処理される。サブタイプは「mixed」(複数のデータ形式が混在)、「alternative」(テキスト形式とHTML形式など、同じ内容が別の形式で混在)、「parallel」(音声と動画など、同時に再生すべき異なるメディアのデータが混在)などが用意されている。
本文の形式
本文は「--区切り文字」という文字列が出現する位置ごとに分割され、それぞれ独立した内容とみなされる。メッセージの終端は「--区切り文字--」とする。区切り文字は本文に出現する可能性がないものなら何でもよいが、実際には十数字程度の長さのランダムな数値列や英数文字列などが用いられることが多い。
パートはいくつあっても構わず、パート内を別の区切り文字でさらにマルチパートに分割する入れ子構造とすることもできる。仕様上は入れ子の段数に制限はなく、パート内パート内パートなど複雑な入れ子構造を形成することもできるが、受信側のメールソフトが正しく処理できるかどうかは注意が必要である。
分割された各パートはそれぞれヘッダと本文を記述できる。ヘッダを省略した場合は「Content-Type: text/plain; charset=US-ASCII」形式であるとみなされる。ASCII文字列以外の様々な形式のデータ(画像、音声、動画、圧縮ファイル、HTML文書、オフィスソフト文書など)をBase64などでテキスト変換して記載することができる。
