電子メールはどのように送られるか

27/11/1998 地球物理学科3年目 丸山 保洋   

 1.はじめに

 私たちが普段ユーザーとして電子メールを使うときには、メールがどのように配送されるかなど特に何も知らなくてもメールを送れる。 しかし、メールシステムの管理者のような立場になるとメールの配送についても、いろいろ知っていなければならないだろう。 これから書くことが、システムの管理に直接役に立つとは思わないが、メールがどのように配送されるかの概念はわかるだろうと思う。

 2.MUAとMTA

 MUA(Mail User Agent)とは、ユーザーがメールを書いたり読んだりするツールのことで、MTA(Mail Transfer Agent)とは、郵便でいうところの郵便局に相当するメール配送プログラムのことである。 MTAの具体的な実装としてsendmailやqmailがある。実際のメールの配送は、MUAによって書かれたメールがMTAに送信され、ネットワーク中に無数にあるMTAの間を転々と移動して送り先のメールボックスに届けられ、 それが、MUAを使って読まれるという流れになっている。

 3.MTAでのメールの処理

 メールアドレスは、ユーザー名@ホスト名、という形で書かれるが、MTAがメールを受け取ると、まず宛先のホスト名に注目して自分のホストのユーザーに宛てられたメールであるかどうかを判断する。 自ホストのユーザー宛のメールでなければ他のMTAに転送される。自ホスト宛のメールであれば、ユーザーのメールボックスにメールが届く。他のホスト宛とされたメールの処理については後で詳しく述べる。 だいたいこのようにして、送り先のメールボックスにメールが届けられるが、もし送り先のユーザーが、Sendmailであれば.forward、qmailであれば.qmailというファイルをホームディレクトリにつくって、 そのファイルの中に転送先のメールアドレスを書いて転送先を指定していれば、転送が生じる。この機構は、そのメールが自ホスト宛と判断されたあとに働くものである。

 4.エンベロープ

 MTAがメールの宛先のホスト名に注目して判断しているとさきほど書いたが、何に書かれているメールアドレスを見ているかというと、実はメール本体のヘッダの宛先部分を見ているのではなく、 エンベロープ(envelope)という情報を参照してメールを配送しているのである。ヘッダの宛先部分が配送の間に書き換えられることはないが、エンベロープは、配送とともに書き換わっていくこともある。 例えば、ヘッダの宛先部分に2つの宛先を書くと、各々の宛先に1通ずつメールが届く。MUAからMTAがメールを受け取った時点では、ヘッダの宛先にも、エンベロープにも2つの宛先が書いてある。 そして、このMTAは、情報に従ってメールを2つの宛先の両方に送り出す。この時点で2つのメールのエンベロープの情報は今までのものとは違うものになっている。つまり、1つのメールのエンベロープには、 1つの送り先のメールアドレスしか書かれていなくなる。そして、このエンベロープにしたがってメールが配送され、2つの宛先に1つずつメールが届くことになる。

 5.他のホスト宛とされたメールの処理

 MTAによって他のホスト宛とされたメールについて、次はどのようなホストにどういう配送経路の種類でメールを届けるかを決定する。 配送経路の種類には、TCP/IPネットワークなどさまざまなネットワークが考えられるが、手動ということも不可能ではない。 TCP/IP経由であれば、SMTP(Simple Mail Transfer Protocol)という、MTA-MTA間及びMUA-MTA間でメールの配送のためのプロトコルに沿って配送される。 ともあれ、MTAは何らかのルールに従って、メールの届け先と経路を決定しているが、それは各MTAのコンフィギュレーションによる。 設定次第では、ホストAからホストBに直接通信できないケースでは、ホストCにメールを配送し、そこからホストBへ届けるといった設定も可能である。 しかし、この方法では配送に関係する全ホストで協調した設定がなされなけば、すべてのメールを配送することはできない。 つまり、かぎられた狭い範囲でのメールのやり取りしかできない。広範囲に及ぶメールのやり取りには、SMTPでの配送の場合にはMX(Mail eXchanger)レコードというのが重要である。 MXレコードとはDNS上の1つの属性値でメールの配送先を示すためのものである。 MTAでMXの値を参照するように設定すると、MTAは必要に応じて宛先メールアドレスのホスト名をキーとしてDNSでの検索を行い、 MXホストとして指定されているホスト名を探し、そこにメールを配送しようとする。配送先は必ずしも、もともとの宛先メールアドレスとはかぎらず、MXレコードにあったホストである。 MXレコードを使っている例としては、@マークの右側がドメイン名のみのときがある。 この場合はドメイン名に対するMXレコードを定めてMXレコードが定めているホストでは、ドメイン名宛てのメールを自分のホスト宛とみなして処理するように設定している。

 6.メールのやり取りのためのプロトコル

 ここで、注意しておくことは、POP3などを使ってメールを読み出すようなMUAを利用していても、そのMUAを利用しているホストからメールを送り出すときにはSMTPを使っているということである。

 7.IMAP4の利点(POP3との比較)

  1. リモート・アクセスなどのモバイル環境で便利
    POP3はサーバーに届いたメールを順番にすべて読み出してしまう。IMAP4ではメールのタイトルや送信者、サイズなどの情報だけを先に読んで、必要なメールだけをダウンロードできる。
  2. 一人で複数台のPCを使う際便利
    IMAP4ではメールをすべてサーバー側で管理するので、いろいろなパソコンから、接続するような環境では便利である。POP3では読み出したメールは削除するのが原則である。サーバーに残しておく使い方もできるが、フォルダの分類などはPCによって、バラバラになってしまう。
  3. グループウェアのようにも使える
    サーバー側のメールボックスを複数のユーザーで共有することもできる。

参考文献

文責・丸山 保洋 タグ責・坪田 敦緒