【问题标题】:postfix content filter per domain每个域的后缀内容过滤器
【发布时间】:2013-12-04 10:38:49
【问题描述】:

我为我的电子邮件服务器测试后缀。 我必须对所有电子邮件进行内容过滤。

master.cf

smtp       inet  n       -       n       -       -       smtpd -o content_filter=dfilt:
................
dfilt     unix  -       n       n       -       -       pipe
   flags=Rq user=vmail:vmail argv=/opt/test/control.sh  -f ${sender} ${recipient}

当用户发送到相同域上的收件人时,control.sh 是一次运行 但是发送给收件人不同域的用户 control.sh 是按域运行的。 所以 control.sh 多次运行同一电子邮件。我不这样做是因为不必要的工作

我们可以 control.sh 只是一个运行一封电子邮件,而不是所有收件人域。 我希望正确解释我的问题:-)

【问题讨论】:

    标签: postfix-mta


    【解决方案1】:

    如果我正确理解您的问题,您将必须捕获所有收件人地址,将它们放入一个数组中,然后您可以根据域处理每封电子邮件

    所以在你的 control.sh 中,你可以添加以下内容:

    cap_to_address=`echo $@ |awk '{$1=$2=$3=""; print $0}'`
    to_address=( $cap_to_address )
    count=${#to_address[@]}
    
    for i in `seq 1 $count`
     do
      to_domain=`echo ${to_address[$i-1]} | grep -o '[^@]*$'`
      # YOUR IF STATEMENT 
      # For eg:
      if [ $to_domain == mydomain.com ]; then
        echo "this is my domain: $to_domain"
      else
        echo "this is not my domain: $to_domain"
      fi
    done
    

    【讨论】:

      猜你喜欢
      • 2011-11-01
      • 2021-06-23
      • 2018-05-19
      • 2015-09-30
      • 2019-05-24
      • 1970-01-01
      • 2013-05-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多