1

我将以下行添加到后缀 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

当我发送电子邮件时,它将被传递,但我没有通过脚本传输。

有谁知道我配置错了什么?

PS:

  • 用户“过滤器”存在并且他拥有脚本的所有权限。
  • Ubuntu 16.04.1
  • 安装最新的 Mailcow 仅在本地使用

问候克里斯

4

1 回答 1

1

你少了一步。在您的配置文件master.cf中,第一个服务是:

smtp      inet  n       -       -       -       -       smtpd 

你必须告诉postfix你想使用你的filter,所以:

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

postfix reload编辑此文件后不要忘记执行。

于 2016-11-01T20:42:46.023 回答