Как правильно
в main.cf
content_filter = /usr/local/bin/procmail:?????????надо всю почту через фильтр пускать
>Как правильно
>в main.cf
>content_filter = /usr/local/bin/procmail:?????????
>
>надо всю почту через фильтр пускатьБлин помогите я туплю по страшному. Filter_Readme прочитал. Никак не могу понять как должна выглядеть строчка в main.cf и/или в master.cf. Эксперементировать не хочеться т.к. сервак рабочий
Пример (почти рабочий :-) )
#протокол:хост:порт
main.cf:
content_filter = lmtp:localhost:10025
...#собственно, сам фильтр: где, что, от кого и т.п.
master.cf:
localhost:10025 inet n n n - 10 spawn
user=filter argv=/opt/kav/bin/smtpscanner
>Пример (почти рабочий :-) )
>#протокол:хост:порт
>main.cf:
>content_filter = lmtp:localhost:10025
>...
>
>#собственно, сам фильтр: где, что, от кого и т.п.
>master.cf:
>localhost:10025 inet n
> n n
> - 10
> spawn
> user=filter argv=/opt/kav/bin/smtpscannerпробую так
main.cf
content_filter = smtp:localhost:10025
master.cf:
localhost:10025 inet n n - - 10 pipe
user=filter argv=/usr/local/bin/procmail -t /usr/local/etc/procmailrcи получаю в лог
Sep 5 13:59:04 Master postfix/smtp[4224]: 783AF2C7: to=<khouabed@airfrance.fr>, relay=none, delay=1047, status=deferred (connect to localhost[127.0.0.1]: Connection refused)и письмо висит в очереди
mynetwork = 102.168.1.0/24, 127.0.0.1
Где торможу??
Ну, pipe же...
У меня работает так:
master.cf:
smtp inet n - y - 10 smtpd -o content_filter=filter:dummy
...
filter unix - n n - - pipe
flags=Rq user=filter argv=<path>/filter.sh -f ${sender} -- ${recipient}----
а в filter.sh -
cat | $SPAMASSASSIN | $PROCMAIL | $SENDMAIL "$@" || \
{ echo Message content rejected; exit $EX_UNAVAILABLE; }
т.е. все по readme. Тестировал на другом сервере, перенес готовые настройки (и права).
>Ну, pipe же...
>У меня работает так:
>master.cf:
>smtp inet n
> - y
> -
> 10 smtpd -o content_filter=filter:dummy
>
>...
>filter unix - n
> n
> - -
> pipe
> flags=Rq user=filter argv=<path>/filter.sh -f ${sender} -- ${recipient}
>
>----
>а в filter.sh -
>cat | $SPAMASSASSIN | $PROCMAIL | $SENDMAIL "$@" || \
> { echo Message content rejected; exit $EX_UNAVAILABLE; }
>
>т.е. все по readme. Тестировал на другом сервере, перенес готовые настройки (и
>права).
да по мануалу вроде прошло как теперь присобачить туда procmail c файлом procmailrc
:0hbHc
* >1000000
! anton@overseas.spb.ru
при локальной доставке работает проверено
в начале filter.sh:
PROCMAIL="<where_is>/procmail -m <where_is>/procmailrc_my"man procmail, опять же.
>в начале filter.sh:
>PROCMAIL="<where_is>/procmail -m <where_is>/procmailrc_my"
>
>man procmail, опять же.вообщем сил моих нету больше.
пытаюсь реализовать копирование на определённый e-mail сообщений больше определенного объема средствами postfix и procmail
procmailrc
:0hbHc
* >5000
! anton@overseas.spb.ruпрекрасно работает для локальной доставки, ради alias и virtual сделал
master.cf
smtp inet n - n - - smtpd -o content_filter=test:dummy
test unix - n n - - pipe
flags=Rq user=test argv=/usr/local/etc/postfix/filter.sh -f ${sender} -- ${recipient}(Все как в описалове) в filter.sh засунул
PROCMAIL="/usr/local/bin/procmail -m /usr/local/etc/procmailrc"сделал postfix reload отправил тестовое сообщение
получаю в логSep 5 16:46:56 Master postfix/qmgr[7758]: A5D4C2D1: from=<anton@overseas.spb.ru>, size=8765, nrcpt=1 (queue active)
Sep 5 16:46:56 Master postfix/pipe[7763]: A5D4C2D1: to=<anton@radio.rtr.spb.ru>, relay=test, delay=1, status=sent (dummy)
Sep 5 16:46:56 Master postfix/smtpd[7760]: disconnect from altlinux.overseas.spb.ru[ххх.ххх.ххх.ххх]
типа путем но нигде этого письма больше нету т.е. никуда не попало.Я щас уже соображаю плохо мог где лажануться так что не обесутте. Но просьба ткнуть носом где косяк!!! Да а вообще кто как решает эту задачу?
cat filter.sh?
--------
#!/bin/sh
SENDMAIL="/usr/sbin/sendmail -i"
PROCMAIL="/usr/bin/procmail -m /home/filter/procmailrc"
INSPECT_DIR=/var/spool/filter
EX_TEMPFAIL=75
EX_UNAVAILABLE=69trap "rm -f in.$$" 0 1 2 3 15
cd $INSPECT_DIR || { echo $INSPECT_DIR does not exist; exit $EX_TEMPFAIL; }
cat | $PROCMAIL | $SENDMAIL "$@" || \
{ echo Message content rejected; exit $EX_UNAVAILABLE; }exit 0
--------cat /home/filter/procmailrc
---------
ORGMAIL=/var/spool/filter/filter
LOGFILE=/var/tmp/procmail.log
HOME=/var/spool/filter
SHELL=/bin/sh
MAILDIR=/var/spool/filter
SPOOLDIR=/var/spool/filter
#LOGABSTRACT=all #*
#VERBOSE=on #*
SENDMAIL=/usr/sbin/sendmail
DROPPRIVS=yes
DEFAULT=| #*-----------
Права проверил? Он же от filter работает...
* - эти пункты выставил? Выставь, потом почитаешь /var/tmp/procmail.log.
DEFAULT=|? Если нет, ничего на выходе и не увидишь.
>cat filter.sh?
>--------
>#!/bin/sh
>SENDMAIL="/usr/sbin/sendmail -i"
>PROCMAIL="/usr/bin/procmail -m /home/filter/procmailrc"
>INSPECT_DIR=/var/spool/filter
>EX_TEMPFAIL=75
>EX_UNAVAILABLE=69
>
>trap "rm -f in.$$" 0 1 2 3 15
>cd $INSPECT_DIR || { echo $INSPECT_DIR does not exist; exit $EX_TEMPFAIL; }
>
>cat | $PROCMAIL | $SENDMAIL "$@" || \
> { echo Message content rejected; exit $EX_UNAVAILABLE; }
>
>
>exit 0
>--------
>
>cat /home/filter/procmailrc
>---------
>ORGMAIL=/var/spool/filter/filter
>LOGFILE=/var/tmp/procmail.log
>HOME=/var/spool/filter
>SHELL=/bin/sh
>MAILDIR=/var/spool/filter
>SPOOLDIR=/var/spool/filter
>#LOGABSTRACT=all
> #*
>#VERBOSE=on
> #*
>SENDMAIL=/usr/sbin/sendmail
>DROPPRIVS=yes
>DEFAULT=|
>
>#*
>
>-----------
>Права проверил? Он же от filter работает...
>* - эти пункты выставил? Выставь, потом почитаешь /var/tmp/procmail.log.
>DEFAULT=|? Если нет, ничего на выходе и не увидишь.
да заработало видать в понедельник с утра голова лучше варит нежели в пятницу вечером. Спасибо