このページの本文へ

電子メールプロトコル再入門 第1回

メールシステムを構成する3つの要素とは?

電子メールを基礎の基礎から学んでいこう

2011年02月04日 09時00分更新

文● 遠藤哲

  • この記事をはてなブックマークに追加
  • 本文印刷

 メールシステムにはサーバとクライアントがあるが、単純なサーバ/クライアントモ デルにはなっていない。メールシステムには3つの機能があり、その組み合わせによ ってメールが届けられる。ここではその仕組みを見ていこう。


メールシステムの全体像

 メールシステムを図1のように俯瞰して捉えると4つの要素で構成されていることがわかる。相手に届ける情報である「メッセージ」、メッセージを作成して送信したり、メールサーバに受信したメールを表示したりするOutlook Express(以下OE )などに代表される「メーラ(メールクライアント)」、メールの配送を受け付け宛先に届けたり、受信したメールをユーザーのメールボックスに入れる「メールサーバ」、そしてメールサーバや宛先メールサーバのIPアドレスの問い合わせ先である「DNSサーバ」である。

図1●基本的なメール配送の流れ

 この図からもわかるように電子メールを届けるというのは、宛先のメールサーバにあるユーザーのメールボックスにメールを入れるという動作にほかならない。

 図1では電子メールにテキスト文書のほかに写真などの情報を添付している様子やメーラとメールサーバ、及びメールサーバ間でメールのやりとりを行なっている様子がわかるものの、さすがにこれでは電子メールシステムの輪郭しか見えない。そこで、メールシステムを少し掘り下げて見てみたい。メッセージの構成や、電子メールの3つのエージェント、関連プロトコルのイメージまで見られるようにしたのが図2である。

図2●メールシステムの機能

3つのエージェント

 図2に登場する3つのエージェントは、電子メールシステムの機能を説明する際によく使われるものだ。ユーザーインターフェイスを提供する「メールユーザーエージェント(MUA: Mail User Agent)」、メールの転送経路を決定する「メール転送エージェント(MTA:Mail Transfer Agent)」、そして実際のメールの配送を担っている「メール配送エージェント(MDA: MailDelivery Agent)」である。これらの3つのエージェントは、あくまで電子メールシステムを説明するためのモデルであり、個々のソフトウェアとして存在するのではない。たとえばOEなどのメーラはMUA、MTA、MDAのすべてを併せ持ち、メールサーバはMTA、MDAを併せ持つと見る。

 これら3つのエージェントの役割をメール送信から受信の流れで追ってみると次のようになる。

  1. ユーザーは電子メールを作成し、メーラから送信する。メッセージの作成と送信のインターフェイスを提供するのがMUAの役割となる
  2. メールを送信するとMUAからMTAにメッセージが渡り、MTAは受け取ったメッセージの配送先を決定する。ここでのMTAの動作はメーラに設定されているメールサーバを配送先に決定するわけだが、通常メールサーバは名前で設定されているためMTAはDNSサーバに問い合わせて名前解決を行なう
  3. 配送先が決定するとMTAはMDAにメッセージを渡す
  4. MDAはSMTPによりメールサーバのMTAにメッセージを渡す

 メールサーバにおけるMTAは、サーバ内のローカルユーザー、または他ドメインのメールサーバからメッセージを受信する存在となる。ローカルユーザーから受信したメッセージは、宛先メールアドレスからドメインを識別し、そのドメインのDNSサーバへ問い合わせ、メッセージの配送先となるメールサーバを決定する。他のドメインからメッセージ受信した場合は、宛先メールアドレスを確認し、ユーザーアカウントごとに用意されているメールボックスを配送先に決定する。

 MTAにより配送先が決定されると、メッセージはMDAに渡される。このときMTAは配送先によってメッセージを渡すMDAを識別することになる。それは配送先がメールボックスであればSMTPに対応していないMDAでかまわないが、他のメールサーバを配送先とした場合はSMTPを話せるMDAでなければならないためだ。いずれにしろ、MTAからメッセージを受け取ったMDAはメールボックスまたは他のメールサーバへ配送するという動作を行なう。ここまでがメール配送の流れである。

 一方、メールを受信し、メーラで表示する場合は、メールを送信する場合に比べるとシンプルである。

 ユーザーがメーラの送受信ボタンを押すと、MUAはメール受信の要求を認識してメーラに設定されたメール受信用サーバに、同じく設定されているアカウントとパスワードを使ってアクセスする。この動作はメールの送信ではないのでMTAを経由することなく、MUAが直接サーバとアクセスするという関係になる。メールの受信を行なうためのプロトコルにはPOP(Post Office Protocol)またはIMAP(Internet Mail Access Protocol)があるが、どちらのプロトコルを使うかは、サーバ名とともに設定されているポート番号により判断される。

メール配送とDNSの関係

 3つのエージェントの説明の中で、DNSサーバへの問い合わせが発生する場面がいくつかあった。メーラがメールサーバへアクセスするために行なう名前解決では、サーバのホスト名に対応するIPアドレスの取得を行なっていた。しかし、メールの配送先の問い合わせは様子が異なる。

 それは問い合わせの元となるメールアドレスを見るとわかる。メールアドレスは、「ユーザー名@ドメイン名」という構造になっている。メールアドレス中のどこにもメールサーバを示す部分がない。配送先のメールサーバの問い合わせは、通常のホスト名による問い合わせと違うのである。

図3●メールアドレスから宛先メールサーバを特定する

 DNSサーバには名前とアドレスを対応づけた“Aレコード”という情報が登録されており、ホスト名の問い合わせに対してこのAレコードが参照される。しかし「メールサーバはどちら?」とコンピュータの役割で問い合わせられても、Aレコードのどれが対応しているのか判断はできない。そのためDNSサーバには、そのドメインのメールサーバ名を定義する「MX(Mail eXchanger)レコード」が別に登録されている

 このMXレコードが登録されているおかげでメールサーバという役割のコンピュータのアドレスを答えられるのである。このため、DNSサーバのアドレスデータベースにMXレコードは必須となる。

 本記事は、ネットワークマガジン2007年12月号の特集1「電子メールプロトコル再入門」を再編集したものです。内容は原則として掲載当時のものであり、現在とは異なる場合もあります。

カテゴリートップへ

この連載の記事
  • 角川アスキー総合研究所
  • アスキーカード