WILLはネットワークに関するあらゆるソリューションをご提供します。
株式会社ウィル

HOME 新着情報 製品一覧 受託開発 Download 購入方法 トライアル サポート 会社案内

MIME形式のメールについて



 当初メールは文字しか取り扱えず、データファイルなどを添付して送受信することはできませんでした。そこで新たに文字コード以外のデータも取り扱える規格が発表されました。それがMIME(Multipurpose Internet Mail Extensions)です。おそらく皆さんの受け取ったメールもほとんどがこのMIME形式であると思われます。

1.MIME形式メールの構成

MIME形式のメール本文部分は複数のパート(マルチパート)に分かれています。そしてそれぞれのパートは再びヘッダ部分(MIMEヘッダ)と本文部分(MIMEボディ)とで構成されます。この1組のパートすなわちMIMEヘッダMIMEボディによってメールの本文やそれぞれのファイルが表されています。

[ MIME形式のメッセージソース ]

    Received: from will30 (will30 [192.0.0.30])
by ns.will-ltd.co.jp (8.9.3/3.7W-10/14/99) with ESMTP id MAA27527;
Wed, 14 Mar 2001 12:56:33 +0900 (JST)
Date: Wed, 14 Mar 2001 13:15:31 +0900
From: "=?iso-2022-jp?B?GyRCPi5AbjtLSScbKEI=?="<name@will-ltd.co.jp>
To: "info" <info@will-ltd.co.jp>
Subject: =?iso-2022-jp?B?UmU6IEZUUE9DWBskQiRLJEQkJCRGPEFMZBsoQg==?=
Message-ID: <20010314110410.BB53.name@will-ltd.co.jp>
  MIME
ヘッダ
MIME-Version: 1.0----------------> (1)
Content-Type: multipart/mixed; -----> (2)
Content-Type: multipart/mixed; boundary="=_NextPart_000_00E4_01C0B1EB.69378110" -----> (3)
Content-Transfer-Encoding: 7bit
    X-UIDL: 6879512a7e9f3e93e0f57bd62b711727
 
    This is a multi-part message in MIME format.
 
    --=_NextPart_000_00E4_01C0B1EB.69378110
 
MIME
ヘッダ
Content-Type: text/plain; charset="ISO-2022-JP" -----> (4)
Content-Transfer-Encoding: 7bit -----> (5)
 
MIME
ボディ
This is a test mail for mime.
*********************************************
WILL CORPORATION http://www.will-ltd.co.jp/
E-mail: info@will-ltd.co.jp
*********************************************
   
--=_NextPart_000_00E4_01C0B1EB.69378110
 
MIME
ヘッダ
Content-Type: application/octet-stream; name="MultFtp.frm"
Content-Disposition: attachment; filename="MultFtp.frm"
Content-Transfer-Encoding: base64
 
MIME
ボディ
aW5nPTANCkJvdW5kc0NoZWNrPTANCk92ZXJmbG93Q2hlY2s9MA0KRmxQb2ludENoZWNrPTANCkZE
SVZDaGVjaz0wDQpVbnJvdW5kZWRGUD0wDQpTdGFydE1vZGU9MA0KVW5hdHRlbmRlZD0wDQpUaHJl
YWRQZXJPYmplY3Q9MA0KTWF4TnVtYmVyT2ZUaHJlYWRzPTENCg0KW01TIFRyYW5zYWN0aW9uIFNl
cnZlcl0NCkF1dG9SZWZyZXNoPTENCg==
     
--=_NextPart_000_00E4_01C0B1EB.69378110--

2.メールヘッダにあるMIMEヘッダ

(1)「MIME-Version: 1.0」
 このメールがMIME形式であることを表します。現在はバージョン1.0のみ公開されています。

(2)「Content-Type: multipart/mixed」
  multipartは本文がそれぞれ独立した複数のパートからなる(マルチパートである)ことを示します。またmixedはそれぞれのパートが互いにまったく関係のないものであることを示します。このほかにも、複数あるそれぞれのパートが同じ内容を表し、表示する内容を選択したい場合(Plain TextとRich Textなど)に用いられるmultipart/Alternative、音声付の画像データなど複数のブロックを同時に表示する必要がある場合に用いられるmultipart/Parallelなどがあります。

(3)「boundary="=_NextPart_000_00A8_01C0AD5B.4EF2FB70"」
 これはそれぞれのパートの境界を示す文字列を定義しています。実際に使用する際には、指定された文字列の前に必ず2つのダッシュ(--)を追加します。。また、boundaryはメッセージの最後尾にも記述され、このときのboundaryには後ろにも2つのダッシュ(--)がつきます。

3.メール本文にあるMIMEヘッダ

(1)「Content-Type」
 メール本文のデータのタイプを表します。テキストであればtext/plain、バイナリのデータであればApplication/Octet-Streamなどのように指定します(このほかについてはRFC1522でご確認ください)。

(2)「Content-Transfer-Encoding」
 受け取ったデータを文字コード変換を行う必要があるかどうか、またはデコードする必要があるかどうかを示します。「7bit」「8bit」「BINARY」「BASE64」「Quoted-Printable」などが指定できます。「7bit」はASCII文字コードの127までの値をとる文字列です。また「8bit」はASCII文字コードの128以上の値も取る文字列です(一般的に7bitはJISコード、8bitはSJISまたはEUCで表現された文字であると判断し、それぞれに対応する文字コード変換を行います)。「BINARY」は文字でないことを示し、文字コード変換もデコードも行いません。「BASE64」、「Quoted-Printable」の場合はそれぞれに応じたデコードを行った後、Content-Typeを参照して文字コード変換を行うかどうかを判断します。

(3)その他
 この他にも、それぞれのパートを一意に識別するContent-ID(RFC1521)、MIMEボディの内容を説明するContent-Description(RFC1521)、パートのデータの表示方法を指定するContent-Disposition(RFC2183)、メッセージの改ざんがないかを確認するContent-MD5(RFC1864)、パートで使用されている言語を指定するContent-Language(RFC1766)などがあります。詳細についてはそれぞれのRFCをご覧下さい。


(C) Copyright 2003 WILL Corporation. All rights reserved.