
我有一個 Perl 腳本,它使用NET::IMAPClient
andMIME::Parser
簡單地從 IMAP 伺服器讀取新電子郵件並將所有附件保存到磁碟。
我的問題是:一旦有新電子郵件,運行此腳本的最佳方法是什麼?我可以使用 cron 定期運行腳本,我甚至可以每隔幾秒鐘檢查一次,但我懷疑有更好的方法。
理想情況下,我會在收到電子郵件後立即採取行動,就像系統事件一樣。實現這目標的常用軟體和技術有哪些?我使用的是Debian系統。
答案1
一般來說,您會不斷檢查電子郵件,除非,如所提到的@喬爾戴維斯,可以使用一些push指令來擴充伺服器。
此外,如果您的電子郵件伺服器支持,則可以使用 IMAP4 的 IDLE 擴充:
IMAPClient 對 IDLE 有本機支援:
答案2
一般來說,傳輸資料的程式會透過「輪詢」或「推送」來操作。除非可以修改 IMAP 伺服器以將資料推送到具有 perl 腳本的伺服器,否則您只能定期輪詢事件。
一種替代方法cron
是僅守護 perl 腳本,以便它sleep
在每次檢查後執行。這可以節省您的時間execve
,根據您輪詢的頻率,您甚至可以節省建立 TCP 連線所需的時間