メール

メールとは

インターネットにおいて、最も実用的で良く使用されるのがメールである。
現在はメールと言えば、ネットワーク上のメールと言うことになっているが、 電子メールまたは、Eメールなどと呼ばれることもある。
メールが電話・郵便などと比べて長所と思われるのは以下の点だろう。

逆に欠点と思われるのは以下の点である。

メールのシステム

メールの配送システムはMUA(メールユーザーエージェント)とMTA(メール転送エージェント)のふたつで作られている。

MUA
いわゆるメールソフトである。
ユーザーとのフロントエンドとなってMTAにメールの配送を依頼する。
UNIXでは以下のようなものがある。
MTA
メールを他の目的地まで転送するソフトウエア。
SMTPというプロトコルによって送られる。
良く使用されるMTAは以下のものがある。

メールの構造

電子メールは以下のような構造になっている。

ヘッダ
        <--- 空行
本文

ヘッダと呼ばれるメールに関するいろいろな情報の書いてある部分があり空行(何もない行)があって、その後にメールの本文がくる。

ヘッダの表示

多くのメールソフトではヘッダ情報の一部しか表示しない。
そのようなソフトでヘッダーをすべて表示させるにはメニューのオプションその他によって表示させる必要がある。
例えば、OutLook Expressでは受信メールのプロパティ(マウス右ボタン->プロパティ)から「詳細」の項目を開くことで見ることができる。
(さらに、「メッセージのソース」を開くとメールの完全なデータを見ることができる)

文字コード

メールを送信する時、文字コードの種類にやっては文字化けをおこしてメールが読めなくなってしまうことがある。
これを防ぐためには文字コードをインターネットの標準(ISO-2022-JP)のものにしておかなければならない。
現在、コンピュータで使用される主な日本語の文字コードは次の3種類である。

JIS
7bitの文字コード。(インターネットにおける標準)
SJIS
パソコン(DOS,Windows,Mac)で使用される。
EUC
UNIXで良く使用される。

SJISやEUCだと文字化けしてしまうことがあるので、インターネットではJISコード(iso-2022-jp)が標準になっている。
これにはパソコンで良く使われる半角かなや丸文字などの特殊な文字は含まれないので、メールにはそれらの文字は使用しないこと。
SJIS、EUCからJISへの変換はメールソフトが自動的にやってくれることもあるが、自分で変換する時は文字コードを変換するソフト(nkfなど)を使用する。

ヘッダ

メールには必ずヘッダがついている。 (1行目から最初の空行まで)
このヘッダの部分を見ると、そのメールに関する情報がいろいろわかるようになっている。 (各行をフィールドと呼ぶ)
しかし、メールソフトによっては、ヘッダの部分が表示されないものもある。 (表示されるかどうかは設定次第)

主なヘッダの内容は以下の通り。

Date:
メールを出した日時
From:
メールの送付元
To:
メールの送付先
Cc:
コピーの送付先
Bcc:
コピーの送付先(ただし、送付先には見えない)
Fcc:
コピーの送付先(ただし、送付先には見えない)
自分のフォルダーに直接送られる。
Subject:
メールのタイトル
Received:
メールの経由してきたホスト
Reply-To:
メールの応答先のアドレス
From:と違うアドレスに返事が欲しい場合などに付けられる。
Message-Id:
メールのID (送付元で付けられる)
世界中でただひとつのユニークなIDになっている(はずである)。
X-Mailer:
メールの種類
X-URL:
メールに関係のあるURL

これら以外にも様々な種類がある。(MIMEなど)
最後のX-が付いたフィールドはユーザーやプログラムが自由に設定できる。 ここにリストアップしたもの(X-)は習慣的に決まっているものである。
また、ヘッダでは大文字・小文字の区別はない。
詳しくは、RFC822を参照のこと。

バイナリーデータの送信・受信

メールは基本的にテキストデータしか送ることができない。
しかし、画像データなどのバイナリーデータを送ることもできる。 そのためには、バイナリーデータをエンコード(バイナリーデータをテキストデータに変換) しなくてはならない。 エンコードされたデータを受けとった時は、デコード(テキストデータをバイナリーデータに変換)する。
インターネットにおけるエンコードの方法には主に以下の方法がある。

uuencode
UNIXで良く使用される。
デコードにはuudecodeが使用される。
BinHex
Macintoshで使用される。
BASE64
MIMEによる方式。
quoted-printable
これもMIMEによる方式。
英語以外の言語のエンコードに良く使用される。

最近のメールソフトでは、これらの方法でエンコードされたデータも自動的に デコードされるようになっているものが多い。

MIME

MIMEとはメールにおいてバイナリーデータを送信するための標準として規定された規格である。
MIMEでは以下のようなヘッダが付く。

MIME-Version:
MIMEのバージョンを表す。
これがあるとMIME対応メールであることを示す。
Content-Type:
MIMEデータの内容を表す。
text/plain
普通のテキストデータ(英語、日本語など)
charset
使われている言語の種類を表す
  • iso-2022-jp (日本語)
  • iso-2022-kr (韓国語)
  • us-ascii (英語)
  • iso-8859-1 (ヨーロッパ系言語)
image/gif
GIF画像データ
image/jpeg
JPEG画像データ
audio
音声データ
multipart/mixed
複数の内容を持つデータ(テキストと画像データなど)
Content-Transfer-Encoding:
エンコードの方法を表す。
7bit
英文、JISなどのテキスト
8bit
8bitのテキスト
binary
バイナリーデータ
base64
BASE64でエンコードされたデータ
quoted-printable
quoted-printableでエンコードされたデータ

メーリングリスト

メーリングリストとは、ある特定の宛先にメールを出すと登録メンバー全員にそのメールが配送されるようになっているシステムのことである。
これによって登録メンバー内だけのお知らせ・問い合わせができるようになる。
メーリングリストには数人レベルのものから世界レベルの巨大なものまで様々なものがある。
メールサーバーの設定さえすれば、誰でもメーリングリストを作ることができる。
もしプロバイダーが対応していれば自分で設定をしなくてもメーリングリストを作ることができる。
また、Web上で登録すると簡単に個人でメーリングリストを作ることのできるサービスもある。

ネチケット

メールを出す時にはそれなりのネチケット(ネットワーク上のエチケット)が必要になる。
特に始めてメールを出す相手には特に注意しなくてはならない。

詳しいことは、RFC1855、ネチケット日本語版(RFC1855日本語版) などを参照のこと。

シグネチャ

メールの最後の部分に書いておく自分に関する署名がシグネチャである。
シグネチャを書いておくと誰からのメールであるかはっきりするのでなるべくつけておいた方が良いだろう。
シグネチャに必要な項目は以下の通り。

住所、電話番号などは悪用されるおそれがあるので、入れない方が良いだろう。

注意

最近、電子メールによって特定のワープロ・スプレッドシートなどのデータをマクロ付で送ることによってマクロウイルスに感染することが多くなっている。
それらのデータはなるべく電子メールで送らないようにした方が良い。 (マクロウイルスを予防する完全なソフトは今の所ないので気をつけるのに越したことはない)

参考

SMTP
RFC821
メールのフォーマット
RFC822
ISO-2022-JP
RFC1468
MIME
RFC2045〜2049
ネチケットガイドライン
RFC1855, FYI28
Linuxドキュメント(/usr/doc)
Mail-HOWTO

Prev
index | home
abe@injapan.net