Postfix 不会触发我的队列前筛选器脚本

Postfix 不会触发我的队列前筛选器脚本

我无法在 Postfix 队列前接受新邮件时触发邮件过滤器。显然,我有些地方做得不对,但我不知道是什么地方。

我有以下设置:Ubuntu Server,Postfix 2.11。

Postfix 服务正在运行,并能正常接收本地账户的电子邮件。

脚本 /tmp/milter.sh(所有者:me,组:me,权限:rwx-rwx-rx)每次运行时都会记录一些字符串。在终端中以用户 me 启动时,它可以正常工作。

在 中/etc/postfix/master.cf,我有:

smtp      inet  n       -       -       -       -       smtpd
   -o content_filter=mymilter

...

mymilter    unix  -       n       n       -       -       pipe
  flags=F user=me argv=/tmp/milter.sh

新配置由

sudo postfix reload

答案1

看起来你对 Milter、队列过滤器之前和之后感到困惑。这三项彼此不同。我建议你阅读有关Postfix Milter 支持队列过滤器之前队列过滤器之后

参数content_filter表明您运行 AFTER-QUEUE 内容过滤器。有关此参数的代码片段来自Postfix 文档

消息进入队列后,将整个消息发送到指定交通:目的地。 这运输name 指定 master.cf 中邮件传递代理定义的第一个字段;语法下一跳目的地在相应的投递代理的手册页中有描述。有关外部内容过滤器的更多信息,请参阅 Postfix过滤器自述文件文件。

至于您为什么无法正常工作的问题,请查看邮件日志。我猜您应该mymilter:dummymymilter在参数 content_filter 中添加。请参阅 t 中的示例他的官方文件

最后要注意的是,如果您进行修改,master.cf那么最好使用postfix stop; postfix start让 postfix 读取配置。

相关内容