メールを受信するプロトコルの種類
前述のとおり、メールの受信プロトコルにはPOP3とIMAP4という2つの標準プロトコルがある。歴史的にはPOP3が古く、1988年にRFC 1081(Post Office Protocol:Version 3)として初めて標準化された。現在POP3の最新規格は、1996年に発行されたRFC 1939となっている。
POP3が標準化される以前、メールシステムの初期の頃は現在のメールクライアントのようにGUIで操作できるといった気の利いたものはなかった。まず、メールサーバにSMTPでメールが届くと、メールサーバは宛先のユーザーのメールボックスにメールを格納する。そのメールを見たければメールサーバにTelnetで接続し、コンソール画面に表示していたのだ。
標準的なプロトコルPOP3
その後、PCの普及によりユーザー側に高性能のコンピュータが用意できるようになり、クライアントにメールをダウンロードして読み出すことが考えられた。それを実現したのがPOP3である。当時のインターネット環境はダイヤルアップ接続が主流であり、サーバマシンの処理能力やディスク容量などリソースに限りがあった。したがって、クライアントPCにメールを読み出すことで通信時間やサーバの負荷を低減していた。この結果、現在はPOP3の利用が一般的となっている。
それではPOP3を使ってどのような操作が行なわれているか説明していこう(図2)。POP3でのやり取りは大きく3つにまとめることができる。始めにメールクライアントからPOP3サーバに接続しユーザー認証を行なう。このユーザー認証によって、POP3サーバがアクセスするメールボックスが決定される。
ユーザー認証が成功すると、続いてメールボックスに以下の操作が行なわれる。受信したメールの数やサイズを読み出すことと、サーバ側のメールボックスからメールを読み出し、ローカルのメールボックスに格納すること、そしてメールボックスの中のメールに削除するマークを付けることである。
メール受信の操作が終わり、クライアントからPOP3セッションの終了が告げられると、サーバ側では削除マークを付けたメールをメールボックスから削除する。そして、メールボックスの管理情報を更新してPOP3 のセッションを終了する。
POP3 のこの一連の操作は、クライアントから送られるコマンドによって行なわれる。たとえば受信メールの数とサイズを読み出すSTATコマンドやメールメッセージを読み出すRETRコマンド、読み出したメールメッセージに削除マークを付けるDELEコマンド、そしてPOP3セッションを終了するQUITコマンドなどである。POP3では、コマンドとその応答はすべてテキストベースで行なわれる。
もちろんサーバ側のメールを削除せずに残して置くこともできる。メールクライアントのオプション設定で「サーバにメッセージを残す」を選択すれば、メールクライアントはDELEコマンドをPOP3 サーバに送らない。
サーバにメールを保存するIMAP4
2つ目のメール受信プロトコルはIMAP4である。1994年にRFC 1730として標準化され、最新はRFC 3501(Internet Message Access Protocol version 4 rev1)となっている(図3)。
POP3とIMAP4の最大の違いはメールの管理方法にある。POP3ではメールをクライアント側のPCにダウンロードし、クライアント側でメールを管理していた。そのためメールクライアントの受信トレイを見ると、そのPCに用意されたメールの保存領域がローカルフォルダという名前で表示されている。
一方、IMAP4はサーバ上にメールを保存しておく。そして、メールクライアントはサーバ側の様子を表示しているのである。クライアントPC上にメールの保存領域を持たないので、ローカルフォルダとは別にIMAP用の受信トレイアイコンが表示される。
このように、IMAP4ではサーバ側にメールを保存しているため、サーバとつねに通信できる環境が前提となっている。また、メールの実体が離れた場所にあることにはメリットがある。たとえばPCの故障などでデータが消滅するリスクを回避できる。
続いてIMAP4の通信プロトコルの概要を説明しよう。IMAP4を使ってサーバとクライアント間で行なう通信は、サーバに接続後ユーザー認証を行ない、メールボックスおよびメールを操作し終了するという流れである。このようにIMAP4は、通信手順はPOP3とそれほど変わらない。しかし、IMAP4はサーバ側にメールの実体を置きながらローカルフォルダを扱うのと同じ操作性をユーザーに提供するため、POP3にはないコマンドが多く用意されている。また、内容を変更するとその場で管理情報が更新される。つまり、POP3のようにセッションの終了をトリガーとして管理情報の更新は行なわれない。
(次ページ、「ユーザー認証を安全に行なう仕組み」に続く)

この連載の記事
-
第6回
ネットワーク
メールシステムの脆弱性とその回避策 -
第5回
ネットワーク
メールを受け取る仕組みはどうなっていますか?? -
第3回
ネットワーク
メールの中身をのぞいてみませんか? -
第2回
ネットワーク
メールを支えるドメイン名とDNSの仕組み -
第1回
ネットワーク
メールが届く仕組みを知っていますか? -
ネットワーク
電子メールの秘密 - この連載の一覧へ