触发一个PHP脚本收到电子邮件时

我有一个带有qmail的centOS服务器,我想设置它,以便每次发送邮件时,都会立即运行一个php脚本。 我不需要将特定消息“转发”到php脚本,只要在qmail发送消息时触发它的执行。 但是,如果我能让脚本至less知道哪个邮箱收到了这个邮件,这将是非常好的(我会避免无用地检查所有邮箱,这是我的脚本目前所做的)

目前,我正在通过每分钟通过cronjob运行我的php脚本来完成此任务,但是我希望避免在没有收到邮件时无用地运行脚本,并避免半分钟的平均延迟。

如何设置qmail来传递消息后触发程序的执行?

到目前为止,最简单的方法是使用你想要调用脚本的每个邮箱的dot-qmailconfiguration文件。 你可以在这里阅读关于dot-qmail以及你可以在qmail-command中使用的环境参数

所以答案是procmail 。 由于我不是一个qmail的人,我不能告诉你如何将其整合到qmail。 但可能答案在这里 。

然后你需要一个配方来触发程序,然后像以前一样发送邮件。 完整的文档也可在线获取:

Procmail是古老的(但强大!)软件。 我们仍然使用它来做垃圾邮件过滤(确实是),每天大约有50万邮件。

如果你使用的是dovecot,你也可以添加manageve来搭配dovecot,并且在某些邮件进来时为你做些东西。我也是procmail方法的忠实粉丝。 Sieve也可以让你做其他非常酷的事情,它不像procmail那样“古老”。