Postfix消息收到钩子

fes*_*est 5 postfix-mta

我正在编写一个Web应用程序,它需要接收用户内部电子邮件地址的电子邮件,让管理员批准它们,然后转发到相应用户的外部邮箱.

我已经为消息接收任务安装并配置了postfix.它使用虚拟电子邮件地址和我存储用户电子邮件地址的现有数据库.本地电子邮件存储是maildir,我使用postfix的虚拟MDA.

基本上,我想在每次收到新消息时执行一个脚本,并且对于哪个用户(maildir消息id也非常有帮助).然后我可以从python代码中读取消息(python有一个maildir消息框的模块)并将其插入数据库中.我可以想到三种方法:

  • 迭代用户maildirs并检查是否有任何新消息,但它对大量用户无效.
  • 使用dbmail,然后检查数据库中是否有新消息(这会更快,但我必须从头开始配置所有内容).此外,不能使用现有的用户数据表.
  • 写一个围绕maildrop/virtual的包装器来保存db和maildir中的消息,但是我需要一种方法来检查接收到的消息是否有效并且由真正的 MDA 成功保存.

任何建议赞赏!

the*_*ega 8

/ etc/aliases文件中,您可以指定每次用户收到邮件时执行的程序.该程序在stdin上获取邮件.所以你没有民意调查,你的程序立即运行.


fes*_*est 5

在回答我自己的问题时,我使用了postfix content_filter,在管道中设置了X标志并手动处理接收地址和消息.由于我不需要访问maildir中的消息,这种方法对我来说很好.