
および を使用する Perl スクリプトがありNET::IMAPClient
、MIME::Parser
これは IMAP サーバーから新しい電子メールを読み取り、添付ファイルをディスクに保存するだけです。
私の質問は、新しいメールが届いたらすぐにこのスクリプトを実行するための最適な方法は何ですか? cron を使用してスクリプトを定期的に実行したり、数秒ごとにチェックしたりすることもできますが、もっと良い方法があるのではないかと思います。
理想的には、システム イベントのように、電子メールを受信するとすぐに対応します。これを実現するための一般的なソフトウェアとテクニックは何ですか? 私は Debian システムを使用しています。
答え1
一般的には、電子メールをチェックし続けるが、ジョエル・デイビス、サーバーはいくつかのプッシュコマンドで拡張できます。
さらに、電子メール サーバーがサポートしている場合は、IMAP4 の IDLE 拡張機能を利用することもできます。
IMAPClient は IDLE をネイティブにサポートしています。
答え2
一般に、データを転送するプログラムは、「ポーリング」または「プッシュ」によって動作します。Perl スクリプトを使用してデータをサーバーにプッシュするように IMAP サーバーを変更できない限り、イベントを定期的にポーリングすることしかできません。
代替案としては、 Perlスクリプトをデーモン化して、各チェックの後にcron
だけ実行するようにする方法があります。これにより、ポーリングの頻度に応じて、TCP接続を確立するのにかかる時間を節約できる可能性があります。sleep
execve