
クライアントがPOPコマンドをどのように使うかは、それぞれのメーラの実装によるところが大きい。ここでは、POP3コマンドとAPOPをサポートしているメーラ「Becky! Internet Mail version 2」を例として、POP3の動作との関連を説明しよう。
メールクライアントの動作
図1は、Becky!のメールアカウントの設定画面の項目を対応付けたものである。まずユーザー認証を見てみよう。通常の認証方法はユーザーIDとパスワードによるが、APOPはPOPサーバに接続した際の応答メッセージに含まれている情報を使ったワンタイムパスワード方式の認証となる。そのため、メーラにはあらかじめ認証方式を設定する必要がある。認証方式の設定がないメーラの場合、ユーザーIDとパスワードによる認証が行なわれる。

図1●メーラの設定項目とPOP3コマンド
続いて、受信したメールをサーバのメールボックスに残すか、それとも削除するかという設定項目がある。POPというプロトコルの基本的な考え方は、サーバのメールボックスのメールをユーザーの使うPCに移動させることである。つまり、いったんメールメッセージをクライアントが取得したら、メッセージをサーバに置く必要はないので削除すべきである。
しかし、普段デスクトップPCでメールを受信している人が、出張先でノートPCを使ってメールを受信するようなケースもあるだろう。このような場合は、ノートPCはメッセージをサーバに残す設定にするほうがよい。ノートPCでサーバのメールボックスを削除する設定にしていると、デスクトップPCで参照できないメールが生じて作業に支障をきたすことになる。
「サーバに残す」設定を行なうと、クライアントはサーバからメールをダウンロードした後DELEコマンドで削除マークを付けずにPOP3セッションを終了する。その結果、サーバにはメッセージが残り、通常使用しているデスクトップPCでメールを受信できる。
サーバ上のメールを指定期日だけ保存する仕組み
また、つねにサーバにメールを残すという使い方を選ぶ場合もあるだろう。その場合注意しなければならないのは、サーバのメールボックスは有限の記憶領域であるということだ。受信したメールを削除せずにそのままにしておけば、やがてメールボックスの容量が不足してメールを受け取れなくなる。
そういったケースでは、図1の設定項目にあるように「受信してから指定日数経過したものは削除する」というオプションを選択する。どのような仕組みで実現するかは各々のメーラの実装に依存するが、画面に表示されている説明文に「UIDLコマンドをサーバがサポートしている必要がある」と記載されている。そこから次のような処理が行なわれていると想像できる。
クライアントはPOP3サーバにアクセスするたびにUIDLコマンドを使い、サーバに残されているメールを識別するIDを取得する。このIDはクライアントにメッセージ情報として取得した日付とともに記録する。UIDLコマンドで取得するIDはメッセージを識別するユニークなIDなので、POPサーバにアクセスするごとに、サーバに残っているメールについてはすでに記録済みのIDを受信することになる。
もし記録にないIDがあれば新たにメールが届いたと判断し、日付とともに記録に追加する。このようにUIDLの応答を記録することで、受信してから経過した日数を判断できるというわけだ。UIDLコマンドで取得する情報をうまく使えば、オプション項目にあるように指定日数経過したメールを検知し、そのメールを削除することが可能となる。
(次ページ、「パスワードを守るAPOPの認証」に続く)

この連載の記事
- 第9回 いろいろな場所で同じメールを読めるIMAPの仕組みとは?
- 第7回 メールの受信用に作られたPOPを学ぶ
- 第6回 SMTPの拡張機能を確かめる「EHLOコマンド」を知ろう!
- 第5回 メールを送る際に使われるSMTPの仕組みとは?
- 第4回 メールの添付ファイルを実現するMIMEのマルチパートとは?
- 第3回 メール誕生からある「7ビットの制約」を越えるMIMEとは?
- 第2回 メールの宛名はどこにある?ヘッダを理解する
- 第1回 電子メールを基礎の基礎から学んでいこう
- 電子メールプロトコル再入門<目次>
- この連載の一覧へ