任务:当一封电子邮件从(特定地址)到达(特定地址)时,必须解析该消息并执行一些操作。
更具体一点。我们的一个人员会计软件给我发送了关于设置邮件转发的电子邮件 - 用户退休、休假或生病。总部认为设置转发是系统管理员的工作。
好的,为了简化操作,我编写了一个 bash 脚本,该脚本需要 4 个参数:转发的开始和结束日期,以及两个地址 - 从谁转发和转发给谁。该脚本调用 zmprov 进行必要的修改,并将数据存储在伪数据库中,然后在 cron.daily 上进行处理。
消息到达时,我从中复制日期和地址,并将它们粘贴为脚本的 CLI 参数。
因为这些电子邮件的内容是结构化的,所以我想我可以编写一个解析器来提取信息并自动启动我的脚本。
但我不知道如何启动这个解析器。在旧的 FidoNET 中,有很多所谓的“邮件机器人”——为处理传入的网络/回显邮件而激活的程序。API 已记录且足够清晰——邮件程序或回显邮件处理器可以触发事件,并且可以在需要时启动机器人。
在 Zimbra 中,我发现只有一种方法:使用带有 sendmail 的邮件过滤器。我的服务器上每天的电子邮件量约为 50-75 千封,而对每封邮件都启动邮件过滤器是适得其反的 - 每周大约有 1-5 个转发请求。
有没有办法根据消息数据而不是根据其到达的事实来启动某些东西?