任务:从(特定地址)到(特定地址)的电子邮件到达后,必须解析消息并执行一些操作。
更加具体。我们的一个人事会计软件向我发送了有关设置邮件转发的电子邮件 - 用户退休或休假或生病。HQ 认为设置转发是系统管理员的工作。
好的,为了简化我编写的 bash 脚本,它需要 4 个参数:转发的开始和结束日期,以及两个地址 - 从谁转发到谁。该脚本调用 zmrov 进行必要的修改并将数据存储在伪数据库中,而伪数据库又在 cron.daily 上进行处理。
在消息到达时,我从中复制日期和地址,并将它们粘贴为脚本的 CLI 参数。
因为这些电子邮件的内容是结构化的,我想我可以编写一个解析器来提取信息并自动启动我的脚本。
但我不知道如何启动这个解析器。在旧的 FidoNET 中有很多所谓的“邮件机器人”——为处理传入的网络/回显邮件而激活的程序。API 已记录并足够清晰 - 邮件程序或 echomail 处理器可以触发事件,并且可以在需要时启动机器人。
在 Zimbra,我只找到了一种方法:将 milters 与它的 sendmail 一起使用。我的服务器上每天的电子邮件量约为 50-75 公斤消息,对每条消息启动 milter 会适得其反 - 每周大约有 1-5 个转发请求。
有什么方法可以根据消息数据而不是根据它的到达事实来启动某些东西吗?
嗯...除了我,没有人使用 Zimbra 自动处理邮件。就这样吧。
这就是我提出的解决方案:
一些研究结果在我的博客中。
常见问题
后缀别名
谢谢大家,一直保持沉默。你让我变得更坚强。