POP3の概要

POP3(Post Office Protocol version3)とは、電子メールを受信するためのプロトコルです。SMTPと同じくアプリケーション層に含まれるプロトコルで、トランスポート層にTCPを利用しています。ウェルノウンポート番号は110です。

POPにはバージョン1、バージョン2も存在していますが、現在ではほとんど使われていません。POP3との互換性もありません。

メールサーバ上には、ユーザのメールアカウントごとにメールボックスが作成されていて、該当ユーザのメールが保存されています。POP3のコマンドと応答コードのやり取りで、ユーザは自分のアカウントのメールボックスにある電子メールをダウンロードして、メールを読めるようにします。

図 POP3の概要
図 POP3の概要

POP3コマンドと応答コード

POP3でメールを受信する際の主なPOP3コマンドと応答コードを以下の表にまとめています。

POP3コマンド意味
USERユーザ名の送信
PASSパスワードの送信
STATメールボックスのステータス表示
LISTメールの一覧表示
RETRメールの取得
DELEメールの削除
QUITPOP3の通信の終了
表 主なPOP3コマンド

応答コード意味
+OK正常応答
-ERR異常応答
表 主な応答コード

POP3の手順

メールソフトで受信ボタンをクリックすると、上記のPOP3コマンドと応答コードのやり取りが行われます。

  1. ユーザ認証(USERコマンド、PASSコマンド)
  2. メールボックス内のメールの取得(STATコマンド、LISTコマンド、RETRコマンド)
  3. メールの削除(DELEコマンド)
  4. POP3通信の終了(QUITコマンド)

POP3では、ユーザ認証が必要です。第三者に勝手にメールを見られないようにするためです。USERコマンドでメールアカウントのユーザ名を送信します。メールサーバからは+OKの応答コードを返します。そして、PASSコマンドでパスワードを送信し、メールサーバで正しいパスワードであることを確認できれば+OKの応答コードを返し、ユーザ認証が完了します。ただし、POP3のユーザ認証では送信するユーザ名やパスワードを暗号化せずにそのまま送信してしまっています。POP3の通信が盗聴されてしまうと、メールアカウントのユーザ名やパスワードが漏れてしまうので、注意が必要です。

ユーザ認証のやり取りを暗号化するためにAPOP(Authenticated Post Office Protocol)があります。

ユーザ認証が完了したら、STATコマンドでメールボックスのステータスを確認します。サーバからは+OKの応答コードとメールボックス内のメールの数とサイズが返されます。

LISTコマンドによって、メールボックス内のメールの一覧を取得します。そして、実際にメールを取得するためにRETRコマンドを利用します。

POP3でメールを受信したら、基本的にメールボックスから受信したメールを削除します。そのために、DELLコマンドを使います。

メールの受信がすべて完了すると、QUITコマンドでPOP3の通信を終了します。

受信したメールをメールボックスから削除しないでおくこともできます。
図 メール受信時のPOP3コマンドと応答コード
図 メール受信時のPOP3コマンドと応答コード

 

POP3のメールの管理

POP3でメールを受信すると、メールのデータは受信したPCで管理することになります。メールを受信したあとも一定期間メールサーバにメールを残しておくこともできますが、基本的には、メールを受信するとメールサーバからは削除されます。PCローカルでメールデータを管理するので、メールデータのバックアップはPCごとに行う必要があります。また、複数のPCで同じアカウントのメールを読みたいとしても、1台のPCでいったんメールを受信すると、他のPCではそのメールを読めなくなってしまう可能性があります。

オフィスでデスクトップPC、出先でノートPCのように一人で複数のPCを利用することが珍しくない状況です。そうすると、複数のPCで同じメールが読める状態、つまりメールデータの同期を行いたいと考えるが普通です。ですが、POP3では複数のPCでメールデータを同期することはできません。メールデータの同期を行うには、ユーザが複数のPCのメールデータのファイルをコピーするなどしなければいけません。

図 POP3でのメールデータの管理
図 POP3でのメールデータの管理

 

TCP/IP