
私はIMAPサーバーから新しい電子メールを読みましたNET::IMAPClient
。MIME::Parser
私の質問は:新しい電子メールが届くとすぐにこのスクリプトを実行する最良の方法は何ですか? cronを使用してスクリプトを定期的に実行でき、数秒ごとに確認することもできますが、より良い方法があると思います。
理想的には、システムイベントのように電子メールを受け取るとすぐに対処することをお勧めします。これを達成するためにどのような一般的なソフトウェアと技術を使用できますか?私はDebianシステムを使用しています。
答え1
一般的に述べたように、電子メールは常に確認されます。@ジョエルデビス、一部のプッシュコマンドを使用してサーバーを拡張できます。
また、電子メールサーバーがサポートしている場合は、IMAP4用のIDLE拡張機能を使用できます。
IMAPClientはIDLEをデフォルトでサポートしています。
答え2
通常、データを転送するプログラムは「ポーリング」または「プッシュ」を介して動作します。 Perlスクリプトを使用してサーバーにデータをプッシュするようにIMAPサーバーを変更できない場合は、イベントを定期的にポーリングできます。
別の方法は、各チェックの後に実行されるcron
ようにPerlスクリプトをデーモン化することです。sleep
これにより、時間が節約され、execve
ポーリングの頻度によってTCP接続を確立するのにかかる時間も節約できます。