■ インターネットメールの仕組み (2006年06月25日)
現在、多くの人がインターネットメール(以降単にメールと呼びます)を利用しています。本文のテキスト(文字)だけのものから、画像やワープロなどのファイルを添付するものまであります。しかし、メールは、元々テキストベースのシステムでした。つまり、テキストしか送れないシステムで、しかも英語圏で生まれたシステムですから、英語の使用が前提になっていました。すなわち、7ビット(2進数7桁)のASCIIコードが前提となっていました。 これでは日本語(16ビット)を含めて英語圏の人以外は、メールが使えませんし、英語圏の人でも画像やワープロなどのファイルを添付することはできません。今回は、世界各国で広く使われているメールについて、その仕組みをみていくことにします。
<文字コードの復習> 初めに、文字コードの復習です。コンピュータ上で、データを文字として解釈したものが「テキスト」でした。そのためには、特定の文字ごとに2進数を対応させた対応表を用います。これが文字コードで、その代表が「ASCIIコード」です。 一般にテキストというと、狭義にはASCIIコードのことをいいます。16進数で表現すると0x00〜0x7F(10進数で0〜127、2進数で0〜1111111)までの範囲です。ASCIIコードは8ビット中の下位7ビットまでしか使わないため、「7ビットコード」とも呼ばれます。
では、テキストとテキスト以外では何が異なっているのでしょうか。メールが送受信する際に前提とするのは、このASCIIコードだけです。現在ではASCIIコード以外のコードを送受信しても問題にならないことも多いが、メールサーバーによっては受け付けないものもあります。従って、メールの仕様も「7ビットコード」を色濃く反映したものとなっています。 しかし、フルビット(8ビット)で表現されるデータも当然存在します。例えば、ワープロや表計算ソフトなどのアプリケーションデータ(バイナリコード)や、日本語などの英語以外の言語コードなどです。
<MIME> ここで登場するのがMIME(Multipurpose Internet Mail
Extension)という仕様です。MIME(マイムと読みます)の仕様を一言で説明すると、あらゆるデータをテキスト(正確にいうと英語圏の人にとってのテキスト、すなわち7ビットのASCIIコード)に変換(エンコードといいます)して送信し、受信する側では、それを逆変換(デコードといいます)して元のデータに戻して読むということです。 これがメールシステムの根本的な考え方で、日本語の本文のみのメールでもこの仕様に基づいて送受信が行われます。また、普段よく利用するファイルの添付とは、ファイルをテキスト化する作業のことです。何とも時代錯誤の仕様
にみえますが、古い歴史を持ったプロトコル(通信の約束事)を引きずっているからです。 MIMEについては、別エントリーで詳しく触れることにします。
<本文とヘッダー>
さて、メールは「本文」と 「ヘッダー」から構成されています。下図はOutlook
Expressの起動画面です。左欄で受信トレイが選択され、右上段は受信メールの一覧、右下段は選択された受信メールの本文が表示されています。また右中段には、送信者・宛先・件名が表示されていますが、この表示はヘッダーの一部です。

Outlook
Expressのヘッダー情報の詳細を見るには、受信メールを右クリックして、メニューから「プロパティ」を選択、開いた画面で「詳細」タブを開きます。ヘッダー例 を別ページで示します。
この「ヘッダー例」を見ると、メールの送信者(From:)、宛先(To:)、件名(Subject:)、送信日時(Date:)、使ったメールソフト(X-Mailer:)などの情報が含まれています。 また、Received:
情報は、メールサーバーを経由する都度記述され、このメールがどのようなサーバーを経由して来たかを示しています。下の行にあるほど送信元に近い経路を意味します。 一般に、ヘッダーはFrom:
To: Subject:
のような「フィールド」と呼ばれる行によって構成されています。先頭が「X-」で始まるフィールドは、メールソフトが独自に採用した固有のもので一般的には互換性はありません。ただ、「X-Mailer」などのように有名になり、多くのメールソフトが共通して採用しているものもあります。
|