2H.2 MIME
MIME(Multipurpose Internet Mail Extensions) とはテキスト形式のメールメッセージ( RFC822 )を利用して 多様な形式のデータ(日本語メールや画像データ)を送信する為の仕様です。 メールのヘッダー部にMIMEで規定しているメディアタイプに関する情報を書き込み、 実際のデータはメールのボディ部に格納します。 ボディ部に格納されるデータは基本的には7ビットデータです。 また、マルチパート(multipart)メディアタイプを使用する事でメールにファイルを添付して送信する事が可能になります。
差出人:送信元 <y2sunlight@sample.ne.jp> 宛 先:送信先 <info@y2sunlight.com> 件 名:こんにちは 内 容:こんにちは ご機嫌いかがですか?
Return-Path: <y2sunlight@sample.ne.jp> Delivered-To: m05075511-info@y2sunlight.com Received: (qmail 4893 invoked by uid 48); 27 Jul 2005 13:48:05 +0900 Date: 27 Jul 2005 13:48:05 +0900 Message-ID: <20050727044805.4892.qmail@sample.jp> Subject: =?ISO-2022-JP?B?GyRCJDMkcyRLJEEkTxsoQg==?= To: =?ISO-2022-JP?B?GyRCQXc/LkBoGyhC?= <info@y2sunlight.com> From: =?ISO-2022-JP?B?GyRCQXc/Ljg1GyhC?= <y2sunlight@sample.ne.jp> X-Mailer: PHP/4.3.10 Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-2022-JP Content-Transfer-Encoding: 7bit ^[$B$3$s$K$A$O^[(B ^[$B$45!7y$$$+$,$G$9$+!)^[(B
| フィールド名 | 形式 / 説明 | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| MIME-Version |
MIME-Version: パージョン番号 MIMEのバージョン番号を示します(現時点では1.0しか存在しません)。 |
||||||||||||||||||
| Content-Type |
Content-Type: タイプ/サブタイプ[; charset=文字コード などのパラメータ] 「メディアタイプ」と呼ばれるMIMEヘッダーの中核です。 ボディ部のデータ形式を示します。タイプには、次の8つが定義されいます。
サブタイプは、IANA( nternet Assigned Number Authority )が登録と管理を行っており、 アプリケーション用にいろいろなベンダーが登録しています。 また、各タイプ/サブタイプ毎にパラメータが決まっている事があります。 例えば、text/plain <>(通常のテキスト)ではパラメータとして文字コードを指定できます。 text/plain; charset=文字コード |
||||||||||||||||||
| Content-Transfer-Encoding |
Content-Transfer-Encoding: エンコード方法 ボディ部に格納されるデータのエンコード方法を指定します。以下の方法が規定されています。
8bits と binaryが定義されていますが、実際に広く使用されているエンコード方法は、7bitとbase64です。 quoted-printableについては以下の補足を、 base64については「2A.HTTP/HTML URL関数」を参照して下さい。 |
||||||||||||||||||
| Content-Description |
Content-Description: コメント ボディ部に含まれるデータのコメントを表します。 |
||||||||||||||||||
| Content-Disposition |
Content-Disposition: inline|attachment [;filename=ファイル名] 通常、ボディ部に含まれるファイルなどの属性を指定します。 inlineはファイルの内容をメール本文と共に表示する事を指定します。 attachment は添付ファイルとして扱う事を指定します。これらの指定に強制力はなく、 送信側の意図を伝えているにすぎません。 filenameパラメータは送信側のオリジナルの添付ファイル名を表します。 |
補足:quoted-printableエンコード
多くの日本語を含む通常のデータでは quoted-printable エンコードは Base64 に比べて非効率です。 従って、Quoted Printable は日本ではあまり使われません。
エンコード方法は以下のようになります。
- 以下の文字はそのままASCIIコードとして送信します。
- イコール(0x3D) を除く文字コード(0x21〜0x5E、0x60〜0x7E)
- 空白(0x20) と 水平タブ(0x09)
-
それ以外のコードは次の形式で送信します
= 16進表記数値
| 変換前 | 変換後 |
|---|---|
| Hello! <CR><LF> | Hellow=21=0A=0D |
| こんにちは | =1B=24B=24=33=24s=24K=24A=24O=1B=28B |
