我正在尝试在用户级别过滤邮件。我安装了 CentOS 和 Postfix。
我设法在服务器上安装了一个过滤器,它工作得很好,除了不是按用户过滤,所有用户的所有电子邮件(发送和接收)都通过过滤器。(我只希望发送给[电子邮件保护]通过过滤器)。
我已添加到master.cf
:
myhook unix - n n - - pipe flags=F user=nils_filter argv=/path to/postfix.php ${sender} ${size} ${recipient}
smtp inet n - - - - smtpd -o content_filter=myhook:
pickup fifo n - - 60 1 pickup -o content_filter=myhook:
main.cf
有:
smtpd_recipient_restrictions = check_recipient_access hash:/etc/postfix/access,permit_mynetworks, reject_unauth_destination
并且我更新了access
文件:
[email protected] FILTER myhook
运行postmap
并重新加载后,它可以适用于整个 example.com 域(通过 smtp 发送和接收的所有电子邮件都通过我设置的过滤器进行传输)。
您能指出我可能错的地方吗?
答案1
content_filter
由于您在 smtpd 上指定并在 master.cf 中拾取,因此所有电子邮件都已通过管道传输。
解决方案:
-o content_filter=myhook:
从 master.cf 中删除字符串放入
myhook
访问文件中正确的语法[email protected] FILTER myhook:
参考:人机访问