2009-07-01 12 views
2

POP3プロトコルの大部分を理解していますが、POP3クライアントがPOP3サーバーから未取得のメッセージIDのリストを効率的に取得する方法があります。 YahooやGmailのような多くのサービスは、今やメールのメッセージを削除することはめったにありませんでした。POP3サーバーから未回収のメッセージIDを効率的に取得する

私は現在、C#で単純なPOP3クライアントを実装していますが、質問には言語に依存しないようにする必要があります。

クライアント側では、取得したすべての取得したメッセージIDのリストを保存します。このクライアントはメッセージを削除したり、読み込まれた広告にマークを付ける必要はありません。POP3サーバーに最後に接続してから最新の電子メールメッセージを受け取るだけです。

  1. POP3サーバからのすべてのメッセージIDを取得します。

    は、私は右のアルゴリズムは、このような何かを行くことを想定しています。このリストは毎日増加し、サイズがメガバイトになることがあります。

  2. このメッセージIDのリストと、既に取得したメッセージID(このリストはクライアント側に格納されています)と比較し、実際にサーバーから取得する必要のあるメールメッセージを特定します。
  3. 上記の手順2の結果を使用して、サーバーから1つずつメールメッセージを取得します。

これを効率的にする方法はありますか?

答えて

2

メールがメールボックスに永久に残るようにPOPが設計されていないので、これは本当に効率的な方法ではありません。メールを一度取得して削除するユースケース向けに設計されています。

効率的な格納のためにである代わりに、IMAPを使用するのが良い問題です。

関連する問題