2013-12-04 2 views
0

i тестирование постфикса для моего почтового сервера. У меня есть фильтр содержимого всех писем.постфиксный фильтр содержимого для домена

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 много работает для одной электронной почты. i dont this, потому что ненужная работа

мы можем control.sh только один запуск одного электронного адреса, не всех доменов получателей. я надеюсь право объяснить мою проблему :-)

ответ

0

Если я понимаю ваши вопросы правильно, вы должны поймать все адреса получателей, поместить их в массив, а затем вы можете обрабатывать каждое письмо в зависимости от домена

Итак, в вашем control.sh, вы можете добавить следующее:

cap_to_address=`echo [email protected] |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 
Смежные вопросы