MIME

読み:マイム
外語:MIME: Multipurpose Internet Mail Extensions encoding
品詞:名詞,+規格

多目的インターネットメール拡張。電子メールを多目的に使うための拡張方法の標準。

インターネットでのメールは、様々な事情から7ビット文字コードでしか転送できない(例えばASCII)。

また一行の文字数制限などもある(RFC 821外部リンク(SMTP)で一行1000文字以内に制限)。

従って、漢字文字を含む文章や、バイナリファイルデータ(8ビットで構成される)などを転送する場合、改行のない長文を送信する場合には、ある手順を用いて転送可能な状態に変換し、受信側ではそれを再び元の状態に戻すための手順が必要になる。

MIMEはその手順の一つで、多くのMUA(メールソフト)が対応している事実上の標準である。

また電子メールを発展させたネットニューズ等でも、日本語文書の送信や画像ファイルの添付に便利なため、この仕様をそのまま利用している。

MIMEは巨大な規格であり、RFC 2045〜2049でパート1〜5に分割されて規定されている。パート1〜5はそれぞれ、次のようになっている。

  • パート1(RFC 2045外部リンク) インターネットメッセージ本体の書式
  • パート2(RFC 2046外部リンク) 媒体型
  • パート3(RFC 2047外部リンク) 非ASCII文書メッセージのヘッダ拡張
  • パート4(RFC 2048外部リンク) 登録手続
  • パート5(RFC 2049外部リンク) 対応標準と例

媒体型

MIMEパート2では、添付されるファイルの種類を表わす媒体型という規定がある。

これは大分類(MIMEタイプ)と、その中での細分類(サブタイプ)という二段階の命名がなされているのが特徴で、大分類を見ればデータの種類が概ね分かるようになっている。

具体的にはMIMEタイプ/サブタイプ、のように記述し、text/plainやimage/pngのように使われる。この手法により、そのデータを扱うソフトウェアがその形式に対応していなくても、画像ファイルなら画像、文書ファイルなら文書といったような、大体必要そうな処理が実現できることになる。

非ASCII文書メッセージ

MIMEパート3では、ASCII以外の文字集合の使い方が規定されている。

具体的には、

=? 文字符号化方法(CES) ? 変換方式 ? 内容 ?=

という形式で記述する。

例えば、

=?ISO-2022-JP?B?GyRCJCwkOSRrGyhC?=

のようになる。

日本語で件名(Subject)や送受信者名(From/To等)を書く場合は、この方法を用いることになる。この例では変換方式はBエンコード(base64)だが、他にQエンコード(Quoted-Printable)も利用できる。

更なる拡張

RFC 2231外部リンクで、更に言語名を記述する拡張方法が標準化されている。

全く普及していない上に、対応していないソフトウェアでは誤動作するという、実に困った仕様である。

具体的には

=?ISO-2022-JP*JA?B?GyRCJCwkOSRrGyhC?=

のように書き、文字符号化方法(CES)と言語名の間を * で区切る。