GrapeCity Secure Mail for .NET 4.0J > メールプロトコルの概要 > POP3 プロトコルの概要 |
POP3 は、サーバー上に一時的に保管されているメッセージにクライアントがアクセスし、これらをダウンロードするために使用されます。「E メールの始まり」のトピックで述べたように、POP は、メッセージを受信側メールサーバー上に待機させておく機能が SMTP に欠けていたために開発されたものです。POP を実装したシステムでは、メッセージをキュー内で待機させることができ、ユーザーは定期的にメールサーバーにログインし、メッセージをダウンロードしてからログアウトできます。これにより、メールサーバーとユーザーコンピュータはいずれも、常時接続を維持する負担を大幅に解消できます。
POP セッションでは、クライアントとサーバーがコマンドと応答を1つずつ順に交換します。クライアントとメールサーバーは、セッション終了までコマンドと応答のやり取りを継続します。このセッションは、認証状態、処理状態、および更新状態の3つの状態に分かれます。
POP3 セッションは、通常はサーバーが 110 番ポートをリスン(受信待機)することで開始されます。クライアントがポート 110 番との TCP 接続を確立し、サーバーがこれに応答すると、認証状態が開始します。クライアントは、自身のユーザー ID を続けた USER コマンドを発行する必要があります。サーバーが成功を示す肯定応答(+OK)を返すと、ユーザーは PASS コマンドを発行し、これに続けてパスワードを提供します。ここでもサーバーが肯定応答(+OK)を返すと、サーバーは、サーバー上にありクライアントに関連付けられたメールドロップを取得します。ここで、セッションは処理状態に移行します。次に、このやり取りの例を示します。
サーバー:< TCP ポート 110 への接続を待機 > クライアント:< 接続を開始 > サーバー: +OK dewey POP3 server ready クライアント: USER mrose サーバー: +OK mrose クライアント: PASS secret サーバー: +OK mrose's maildrop has 2 messages (320 octets) |
この時点で、ユーザーはメールサーバーにログインし、メールサーバーはユーザーに関連付けられたメールドロップを取得します。ここで、セッションは処理状態に移行します。Secure Mail では、Pop.Authenticateメソッドを使用して、上述のすべての処理を行えます。
処理状態では、クライアントが数種類あるコマンドのいずれかを発行し、サーバーがこれに対して肯定または否定応答を返します。これらのコマンドは、主にメールサーバー上のメールに関する情報を取得するものか、またはメールサーバーからメールを取得するものです。次に、有効なコマンドの一部を示します。
STAT | サーバーがすべてのメッセージ数とその合計サイズを返します。 |
LIST [msg] | 引数を指定しない場合は、サーバーは各メッセージとその統計を列挙した複数行の応答を返します。msg 引数を指定すると、サーバーは msg に指定されたメッセージだけに関する統計を返します。指定されたメッセージが存在しない場合は、エラーメッセージを返します。 |
RETR [msg] | サーバーは、msg に指定されたメッセージのコンテンツを表す複数行の応答を返します。指定されたメッセージが存在しない場合は、エラーメッセージを返します。 |
DELE [msg] | 引数 msg に指定されたメッセージが有効な場合は、POP3 サーバーはこのメッセージに削除用のマークを設定し、肯定応答を返します。指定されたメッセージが存在しない場合、またはすでに削除マークが設定されている場合はエラーを返します。 |
NOOP | サーバーはこのコマンドに対して単に肯定応答を返します。 |
LAST | サーバーはアクセスされたメッセージのうち、最大の番号を返します。 |
RSET | 削除マークが設定されたすべてのメッセージからマークを解除します。 |
QUIT | POP3 セッションを終了し、サーバーが更新状態に入ります。 |
処理状態はさまざまな形式で行われますが、クライアントとサーバーの対話例は次のようになります。
クライアント: STAT サーバー: +OK 2 320 クライアント: LIST サーバー: +OK 2 messages (320 octets) サーバー: 1 120 サーバー: 2 200 サーバー: . クライアント: RETR 1 サーバー: +OK 120 octets サーバー:< POP3 サーバーはメッセージ1を送信 > サーバー: . クライアント: DELE 1 サーバー: +OK message 1 deleted クライアント: RETR 2 サーバー: +OK 200 octets サーバー:< POP3 サーバーはメッセージ2を送信 > サーバー: . クライアント: DELE 2 サーバー: +OK message 2 deleted クライアント: QUIT |
QUIT コマンドが発行されると処理状態は終了し、次に更新状態に移行します。
更新状態では、サーバーは削除マークの設定されたすべてのメッセージを削除し、クライアントのメールドロップに関連付けられたリソースを解放し、TCP 接続を終了します。
POP3 プロトコルに関する詳細は、RFC 1939 を参照してください。