クライアントがPOPコマンドをどのように使うかは、それぞれのメーラの実装によるところが大きい。ここでは、POP3コマンドとAPOPをサポートしているメーラ「Becky! Internet Mail version 2」を例として、POP3の動作との関連を説明しよう。
メールクライアントの動作
図1は、Becky!のメールアカウントの設定画面の項目を対応付けたものである。まずユーザー認証を見てみよう。通常の認証方法はユーザーIDとパスワードによるが、APOPはPOPサーバに接続した際の応答メッセージに含まれている情報を使ったワンタイムパスワード方式の認証となる。そのため、メーラにはあらかじめ認証方式を設定する必要がある。認証方式の設定がないメーラの場合、ユーザーIDとパスワードによる認証が行なわれる。
続いて、受信したメールをサーバのメールボックスに残すか、それとも削除するかという設定項目がある。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回
ネットワーク
電子メールを基礎の基礎から学んでいこう -
ネットワーク
電子メールプロトコル再入門<目次> - この連載の一覧へ