我有一台装有 qmail 的 centOS 服务器,我想设置它,以便每次发送电子邮件时,都会立即运行 php 脚本。我不需要将特定消息“转发”到 php 脚本,只需在 qmail 发送消息时触发其执行即可。但是,如果我可以让脚本至少知道哪个邮箱收到了消息,那就太好了(我将避免无用地检查所有邮箱,而这正是我的脚本目前所做的)
目前,我通过每分钟通过 cronjob 运行我的 php 脚本来实现这一点,但我想避免在没有收到邮件时无用地运行脚本,并避免平均半分钟的延迟。
如何设置 qmail 以在发送消息后触发程序的执行?
答案1
答案2
所以答案是procmail
。由于我不是 qmail 专家,我无法告诉您如何将其集成到 qmail 中。但答案可能是这里。
然后你需要一个配方来触发程序,然后像以前一样发送邮件。完整的文档也可以在线获取:
- http://servers.digitaldaze.com/extensions/procmail/manpages/procmail.1.html
- http://servers.digitaldaze.com/extensions/procmail/manpages/procmailex.5.html
- http://userpages.umbc.edu/~ian/procmail.html
- http://cr.yp.to/qmail/faq/incominguser.html
- 还有很多很多
Procmail 是一款古老(但功能强大!)的软件。我们仍然使用它来过滤垃圾邮件(是的,确实如此),每天处理大约 500,000 封邮件。
答案3
如果您正在使用 dovecot,您还可以将 managesieve 添加到 dovecot,并让它在收到某些邮件时为您做一些事情。我也是 procmail 方法的忠实粉丝。Sieve 还可以让您做其他非常酷的事情,而且它并不像 procmail 那样“古老”。