通过 IMAP 接收电子邮件并使用脚本进行解析,延迟最小

通过 IMAP 接收电子邮件并使用脚本进行解析,延迟最小

我有一个 Perl 脚本,它使用NET::IMAPClientandMIME::Parser简单地从 IMAP 服务器读取新电子邮件并将所有附件保存到磁盘。

我的问题是:一旦有新电子邮件,运行此脚本的最佳方法是什么?我可以使用 cron 定期运行脚本,我什至可以每隔几秒检查一次,但我怀疑有更好的方法。

理想情况下,我会在收到电子邮件后立即采取行动,就像系统事件一样。有哪些常用软件和技术可以实现这一点?我使用的是 Debian 系统。

答案1

一般来说,您会不断检查电子邮件,除非,如所提到的@乔尔戴维斯,可以使用一些push命令来扩展服务器。

此外,如果您的电子邮件服务器支持,则可以使用 IMAP4 的 IDLE 扩展:

IMAPClient 对 IDLE 有本机支持:

答案2

一般来说,传输数据的程序通过“轮询”或“推送”进行操作。除非可以修改 IMAP 服务器以将数据推送到带有 perl 脚本的服务器,否则您只能定期轮询事件。

一种替代方法cron是仅守护 perl 脚本,以便它sleep在每次检查后执行。这可以节省您的时间execve,并且根据您轮询的频率,您甚至可以节省建立 TCP 连接所需的时间

相关内容