<IT情報・メール一般編> IT情報TOPヘ

テキスト形式メールの送受信の仕組み

(2006年06月25日)

 現在、多くの人がインターネットメールを利用しています。本文のテキスト(文字)だけのものから、画像やワープロなどのファイルを添付するものまであります。しかし、メールは 元々テキストベースのシステムでした。つまり、テキストしか送れないシステムで、しかも英語圏で生まれたシステムですから、英語の使用が前提になっていました。すなわち、7ビット(2進数7桁)のASCIIコードが前提となっていました。
 これでは日本語(16ビット)を含めて英語圏の人以外はメールが使えませんし、英語圏の人でも画像やワープロなどのファイルを添付することはできません。今回は世界各国で広く使われているテキスト形式のメールについて、その仕組みをみていくことにします。

<文字コードの復習>
 初めに文字コードの復習です。コンピュータ上で、データを文字として解釈したものが「テキスト」でした。そのためには特定の文字ごとに2進数を対応させた対応表を用います。これが文字コードで、その代表が「ASCIIコード」です。
 英語圏の人にとってテキストというと、ASCIIコードのことをいいます。16進数で表現すると0x00~0x7F(10進数で0~127、2進数で0~1111111)までの範囲です。このASCIIコードに倣って、「IS0-2022-JP」のように 8ビットのうち下位7ビットのみを使うコードを、一般に「7ビットコード」と呼びます。

 現在でも 7ビットコード以外のコードを送信すると、メールサーバーによっては受け付けないものもあります。従って、メールが送受信する際に前提とするのは 7ビットコードだけです。こうしてメールの仕様は 7ビットの「ASCIIコード」を色濃く反映したものとなっているのです。
 しかし、世界にはフルビット(8ビット)で表現されるデータも当然存在します。例えば、日本語など英語以外の多くの言語コードや、ワープロや表計算ソフトなどのアプリデータ(バイナリコード)などです。

<MIME>
 ここで登場するのがMIME(Multipurpose Internet Mail Extension)という仕様です。MIME(マイムと読みます)の仕様を一言で説明すると、あらゆるデータを ASCIIコードに同じ 7ビットコードに変換エンコードといいます)して送信し、受信する側ではそれを逆変換(デコードといいます)して元のデータに戻して読むということです。
 これがテキスト形式メールの根本的な考え方で、日本語の本文のみのメールでもこの仕様に基づいて送受信が行われます。また、普段よく利用するファイルの添付とは、ファイルを 7ビットコードに変換する作業のことです。何とも時代錯誤の仕様 にみえますが、古い歴史を持ったプロトコル(通信の約束事)を引きずっているからです。
 さらに、Wordや画像などのバイナリデータを添付ファイルとして送信するときは、そのエンコード方法には「base64」が使われます。「base64」というのは、バイナリデータから3バイトずつ切り出し、これらを6ビット毎に分割し、その6ビットのビット列が表す数に対応するASCIIコードに置き替える方式です。6ビット列では、2の6乗=64種類の文字で全てに英数字データを表すことができます。元データの3バイトが4バイトに変換されることになるので、サイズは約1.3倍になります。

<本文とヘッダー>
 さて、テキスト形式のメールは「本文」と 「ヘッダー」から構成されています。下図はOutlook Expressの起動画面です。左欄で受信トレイが選択され、右上段は受信メールの一覧、右下段は選択された受信メールの本文が表示されています。また右中段には、送信者・宛先・件名が表示されていますが、この表示はヘッダーの一部です。

 

 Outlook Express のヘッダー情報の詳細を見るには、受信メールを右クリックして、メニューから「プロパティ」を選択、開いた画面で「詳細」タブを開きます。ヘッダー例 を別ページで示します。

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



ページ
トップ