我想parsing并插入刚刚到达关键任务应用程序邮件服务器的邮件中的一些信息。
我有什么办法来configuration我的邮件服务器,以便邮件到达时运行脚本。
虽然我有一个debian系统,但任何通用的解决scheme(Linux)将做。
看起来其他人已经回答了这个问题,但是我以为我会为你写一个具体的答案。
我会使用procmail,并在你的.procmailrc中使用类似下面的配方:
#turn this off when you're finished testing :) VERBOSE=on LOGFILE=/home/user/procmail.log :0 c #the c means continue on after this recipe is parsed | /path/to/your/script
你还需要在底部的默认配方,以邮寄到你的maildir。
这是传入邮件处理的一个很好的方法。 简单的事情就是使用如前所述的.forward机制来通过脚本来传递消息。 在用户的主目录中创build一个模式600.forward文件,并将一个pipe道放到脚本中:
"|$HOME/bin/your.program -and some arguments"
但是,你应该看看使用procmail,而不是如何详细。 Procmail为您提供了许多优点,例如更复杂的日志logging和邮件处理。 这是一个简单的.procmailrc示例(同样来自同一个howto):
:0 * !^FROM_DAEMON * !^FROM_MAILER * !^X-Loop: [email protected] | $HOME/bin/my.script
它有一些很好的function,比如检测和停止邮件循环的能力。
在postfix中,你可以保存所有传入的消息(匹配一些模式,或者简单的全部),让你的应用程序把它们放在保存/目录中,然后把它们放回到/目录。 这是反垃圾邮件filterMailScanner与Postfix一起使用时的工作方式。
在Postfixconfiguration文件/etc/postfix/main.cf中添加以下行:
header_checks = regexp:/ etc / postfix / header_checks
在文件/ etc / postfix / header_checks中添加这一行:
/ ^收到:/ HOLD
这样做的效果是告诉Postfix将所有消息移动到HOLD队列,当你的应用程序完成时,我相信你应该把邮件放入incoming /目录。