IMAP経由でメールを受信し、スクリプトで最小限の遅延で解析する

IMAP経由でメールを受信し、スクリプトで最小限の遅延で解析する

および を使用する Perl スクリプトがありNET::IMAPClientMIME::Parserこれは IMAP サーバーから新しい電子メールを読み取り、添付ファイルをディスクに保存するだけです。

私の質問は、新しいメールが届いたらすぐにこのスクリプトを実行するための最適な方法は何ですか? cron を使用してスクリプトを定期的に実行したり、数秒ごとにチェックしたりすることもできますが、もっと良い方法があるのではないかと思います。

理想的には、システム イベントのように、電子メールを受信するとすぐに対応します。これを実現するための一般的なソフトウェアとテクニックは何ですか? 私は Debian システムを使用しています。

答え1

一般的には、電子メールをチェックし続けるが、ジョエル・デイビス、サーバーはいくつかのプッシュコマンドで拡張できます。

さらに、電子メール サーバーがサポートしている場合は、IMAP4 の IDLE 拡張機能を利用することもできます。

IMAPClient は IDLE をネイティブにサポートしています。

答え2

一般に、データを転送するプログラムは、「ポーリング」または「プッシュ」によって動作します。Perl スクリプトを使用してデータをサーバーにプッシュするように IMAP サーバーを変更できない限り、イベントを定期的にポーリングすることしかできません。

代替案としては、 Perlスクリプトをデーモン化して、各チェックの後にcronだけ実行するようにする方法があります。これにより、ポーリングの頻度に応じて、TCP接続を確立するのにかかる時間を節約できる可能性があります。sleepexecve

関連情報