我在后缀 master.cf 中添加了以下行
filter unix - n n - 10 pipe flags=Rq user=filter null_sender= argv=/tmp/filter.sh -f ${sender} -- ${recipient}
我的测试脚本 filter.sh 代码如下所示:
#!/bin/sh
SENDMAIL="/usr/sbin/sendmail -G -i" # NEVER NEVER NEVER use "-t" here.
export HOME=/home/filter
SENDER="$2" #sender
shift
shift
shift
EMPFAENGER="$@" #empfaenger
#echo "SENDER=$SENDER" >> /tmp/logging.log
#echo "EMPFAE=$EMPFAENGER" >> /tmp/logging.log
touch itworked
cat | $SENDMAIL -f $SENDER -- $EMPFAENGER
当我发送电子邮件时,它会被传送,但它没有通过脚本传输。
有人知道我配置错了什么吗?
附言:
- 用户“filter”存在并且他拥有脚本的所有权限。
- Ubuntu 16.04.1
- 已安装最新的 Mailcow,仅在本地使用
问候语 克里斯
最佳答案
你错过了一步。在你的配置文件 master.cf
中,第一个服务是:
smtp inet n - - - - smtpd
你必须告诉 postfix
你想使用你的 filter
,所以:
smtp inet n - - - - smtpd -o content_filter=filter
不要忘记在编辑此文件后执行postfix reload
。
关于linux - Postfix 后队列内容过滤器不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40363324/