メインコンテンツまでスキップ

4. MIME-Versionヘッダーフィールド (MIME-Version Header Field)

RFC 822が1982年に公開されて以来、インターネットメッセージには実際には1つの形式標準しかなく、使用中の形式標準を宣言する必要性はほとんど認識されていませんでした。本文書は、RFC 822を補完する独立した仕様です。本文書の拡張はRFC 822と互換性のある方法で定義されていますが、メール処理エージェント (Mail-processing Agent) が、メッセージが新しい標準を念頭に置いて作成されたかどうかを知りたい状況は依然として存在します。

したがって、本文書は、使用中のインターネットメッセージ本文形式標準のバージョンを宣言するために使用される新しいヘッダーフィールド「MIME-Version」を定義します。

本文書に従って作成されたメッセージは、以下の逐語的なテキストを含むそのようなヘッダーフィールドを含まなければなりません (MUST):

MIME-Version: 1.0

このヘッダーフィールドの存在は、メッセージが本文書に準拠して作成されたことの主張です。

将来の文書がメッセージ形式標準を再び拡張する可能性があるため、MIME-Versionフィールドの内容について正式なBNFが提供されます:

version := "MIME-Version" ":" 1*DIGIT "." 1*DIGIT

したがって、「1.0」を置き換えたり拡張したりする可能性のある将来の形式指定子は、ピリオドで区切られた2つの整数フィールドに制約されます。MIME-Version値が「1.0」以外のメッセージを受信した場合、それが本文書に準拠していると仮定することはできません。

MIME-Versionヘッダーフィールドは、メッセージのトップレベルで必須 (required) であることに注意してください。マルチパートエンティティの各本文パートには必要ありません。"message/rfc822" または "message/partial" タイプの本文の埋め込みヘッダーには、埋め込みメッセージ自体がMIME準拠であると主張されている場合に限り、必要です。

本文書で定義されているMIMEに準拠するメールリーダーが、将来「1.0」以外のMIME-Version値を持って到着する可能性のあるメッセージをどのように処理すべきかを完全に指定することは不可能です。

特定のメディアタイプのバージョン管理がMIME-Versionメカニズムを使用して実行されないことにも注目する価値があります。特に、一部の形式(application/postscriptなど)には、メディア形式の内部にあるバージョン番号付け規則があります。そのような規則が存在する場合、MIMEはそれらに取って代わりません。それらが存在しない場合、MIMEメディアタイプは、必要に応じてContent-Typeフィールドで「version」パラメータを使用する可能性があります。

実装者への注記 (Implementor's Note)

MIME-Version値をチェックする際、存在するRFC 822のコメント文字列は無視されなければなりません (MUST)。特に、以下の4つのMIME-Versionフィールドは同等です:

MIME-Version: 1.0

MIME-Version: 1.0 (produced by MetaSend Vx.x)

MIME-Version: (produced by MetaSend Vx.x) 1.0

MIME-Version: 1.(produced by MetaSend Vx.x)0

MIME-Versionフィールドがない場合、受信メールユーザエージェント (Mail User Agent)(MIME要件に準拠しているかどうかにかかわらず)は、オプションでローカル規則に従ってメッセージ本文を解釈することを選択できます。現在、そのような多くの規則が使用されており、実際には非MIMEメッセージにはほとんど何でも含まれる可能性があることに注意すべきです。

非MIMEメールメッセージが実際にUS-ASCII文字セットのプレーンテキストであることを確信することは不可能です。なぜなら、MIMEより前の非標準のローカル規則のセットを使用して、別の文字セットのテキストまたは自動的に認識できない方法で提示される非テキストデータ(例えば、uuencode圧縮されたUNIX tarファイル)を含むメッセージである可能性が十分にあるからです。


主要ポイント:

  • すべてのMIMEメッセージは MIME-Version: 1.0 ヘッダーを含まなければなりません (MUST)
  • バージョン形式は major.minor(例: 1.0)です
  • メッセージのトップレベルでのみ必須であり、本文パートには必要ありません
  • RFC 822のコメントは無視されなければなりません
  • 非MIMEメッセージはローカル規則を使用する可能性があります