1

ここで、IMAP サーバーに新しいメールを照会し、新しいメールが到着したときにクライアントに通知するプログラム (デーモン) を書きたいと思います。また、何千ものメール アカウントを持っているので、これを効率的かつ簡単に行う方法を知りたいです。

私の理解では、考えられる解決策が 2 つあります。

  • メール アカウントを 1 つずつクエリします。これは「ポーリング」スタイルです
  • IMAP アイドル拡張機能とイベント ドリブン I/O (epoll)参照を使用する

両方のソリューションの長所と短所を知りたいです。

また、そのようなことを行うのに役立つライブラリ (C、C++、PHP、Python) があるかどうかも知りたいです。または、どうすれば自分でこれを行うことができますか。

それとも第三の解決策?

4

2 に答える 2

2

IMAP IDLE の利点は、オーバーヘッドが削減され、(おそらく) 応答性が向上することです。

ポーリングの利点は、すべてのサーバーで本質的にサポートされていることですが、IDLE はすべてのサーバーでサポートされているわけではありません。

ライブラリに関しては、@Max は Python の imaplib と imaplib2 を指摘しています。あなたが言及した他の言語にも同様のライブラリがあると確信しています。

3 番目のオプションについては、IMAP ライブラリの代わりに、context.ioの使用を検討できます。

于 2012-10-19T05:01:38.097 に答える
0

imap サーバーの場合は、3 番目のオプションがあるかもしれませんその場合、プロトコル自体をバイパスして、サーバー データベース自体の変更を監視できます。通信レイヤー全体が省略されるため、これははるかに効率的です。

于 2012-07-31T15:12:26.207 に答える