26

新しいメールがあるかどうかを確認するたびに gmail をポーリングせずに、imaplib を使用して gmail アカウントを監視する方法はありますか。つまり、スクリプトに新しいメッセージが通知されるようにして、ポーリング間の遅延時間ではなく、すぐに処理できるようにしたいだけです。

IMAP プロトコルが IDLE コマンドでこれをサポートしていることがわかりますが、imaplib のドキュメントでそれについて文書化されているものは何も表示されないため、これに関するヘルプは素晴らしいでしょう!

4

4 に答える 4

15

imaplibにはこれを行うものはありませんが、私の知る限り(免責事項:Pythonについてはほとんど知りません)、誰かがimaplibと同じインターフェースを持つPython用のIDLE拡張機能を実装しているようです(これを交換できます)どうやら既存のコードに変更はありません):

https://github.com/imaplib2/imaplib2

于 2009-01-07T18:04:46.663 に答える
6

ProcImapをチェックしてください。これは、libimap と libimap2 の上にあるより抽象的なフレームワークであり、IMAP サービスを処理する優れたソリューションを提供します。あなたが探しているもののように見えますし、私にとってもそうです。私はまさにあなたと同じ問題を抱えており、ProcImap を見つけました。自分で試してみます。

于 2009-01-14T06:44:40.800 に答える
3

このリンクは、IMAP IDLE の使用例を示しています: http://blog.timstoop.nl/2009/03/11/python-imap-idle-with-imaplib2/

casperOne の回答 (imaplib2) にリンクされている同じライブラリを使用します。

于 2011-01-28T21:23:28.717 に答える
2

[RFC 2177 IMAP IDLE] 3コマンドを同期的に実装する簡単なパッチがbugs.python.orgで提案されています (複数の IMAP サーバーを待機するには、スレッドまたはその他の並列実行手段を使用する必要があります)。stdlib select を使用して、タイムアウトを含むソケットを待機します。このパッチは最終的に stdlib に追加されますが、最初にテストを作成する必要がありますIDLEコマンドは、gmail IMAP プッシュ通知に必要なものです。うまくいけば、これは役に立ちます:)

于 2013-04-19T20:26:11.600 に答える