メールの中を覗いてみる(その2)

 ではマルチパートメールの中がどうなっているか,見てみましょう.図9は,実際のメールの例です.この例では,テキストからなる部分と,BMP形式の画像ファイル“gazou.bmp”を添付した部分の2つからなっています.まず,Content-typeには,マルチパートメールであることを表す“multipart”が用いられています.さらに区切り文字列が,“----=_NextPart_000_0012…”であることもわかります.
 では,次に本文を見てみましょう.区切り文字列によって本文は2つの部分に区切られています.1つめの内容のヘッダ情報を見ると,Content-TypeからJIS漢字コードを用いたテキスト情報であることがわかります.また2つめの内容のヘッダ情報を見ると,Content-TypeからBMP形式の画像ファイルで,ファイル名が“gazou.bmp”であることもわかります.メールソフトがこのメールを受信すると,図10のように1つめの内容は,テキスト情報として画面に表示され,2つめの内容は画像ファイルが添付されている,と表示しています.

〔図9〕マルチパートメールの実際の例

図9

〔図10〕画像ファイルが添付されたメールの例

図10


Quoted-Printableエンコーディング
 BASE64エンコーディングは,バイナリ情報をASCII文字に変換する方法でしたが,このほかにもQuoted-Printableエンコーディングという方法があります.例えば,16進数で3f5eという値をQuoted-Printableエンコーディングすると,
  =3F=5E
となります.つまり8ビットごとに=を挟み,値を16進数でそのまま表現します.1バイト表すために,3文字(3バイト)必要となり,BASE64に比べて効率が悪くなっています.そのため,短いバイナリデータを変換する以外には,ほとんど用いられません.

まとめ
 単純な文字情報を送るシステムとして設計された電子メールシステムの中で,想定されていなかった漢字や画像,バイナリデータファイルなどを送り合う方法について解説しました.
メールシステムでは,7ビットのASCII文字しかやりとりできない
漢字はJIS漢字コードによってASCII文字に変換される
バイナリデータは,BASE64エンコーディングによってASCII文字に変換される
バイナリデータのデータ形式やファイル名はContent-Typeによって判断できる
区切り行を用いることで複数の内容を1通のメールで送ることができる

 


 CQ出版 TOP OPENDESIGN TOPOPENDESIGN Online目次に戻る
   
Copyright CQ Publishing Co.,Ltd. 1997-2001