GrapeCity Secure Mail for .NET 4.0J
POP3 プロトコルの概要

POP3 について

POP3 は、サーバー上に一時的に保管されているメッセージにクライアントがアクセスし、これらをダウンロードするために使用されます。「E メールの始まり」のトピックで述べたように、POP は、メッセージを受信側メールサーバー上に待機させておく機能が SMTP に欠けていたために開発されたものです。POP を実装したシステムでは、メッセージをキュー内で待機させることができ、ユーザーは定期的にメールサーバーにログインし、メッセージをダウンロードしてからログアウトできます。これにより、メールサーバーとユーザーコンピュータはいずれも、常時接続を維持する負担を大幅に解消できます。

POP セッションでは、クライアントとサーバーがコマンドと応答を1つずつ順に交換します。クライアントとメールサーバーは、セッション終了までコマンドと応答のやり取りを継続します。このセッションは、認証状態、処理状態、および更新状態の3つの状態に分かれます。

POP3 認証状態

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メソッドを使用して、上述のすべての処理を行えます。

POP3 処理状態

処理状態では、クライアントが数種類あるコマンドのいずれかを発行し、サーバーがこれに対して肯定または否定応答を返します。これらのコマンドは、主にメールサーバー上のメールに関する情報を取得するものか、またはメールサーバーからメールを取得するものです。次に、有効なコマンドの一部を示します。

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 コマンドが発行されると処理状態は終了し、次に更新状態に移行します。

POP3 更新状態

更新状態では、サーバーは削除マークの設定されたすべてのメッセージを削除し、クライアントのメールドロップに関連付けられたリソースを解放し、TCP 接続を終了します。

POP3 プロトコルに関する詳細は、RFC 1939 を参照してください。

 

 


© 2003, GrapeCity inc. All rights reserved.