>в файле master.cf должна быть срочка
> -o content_filter=
>замените ее на
> -o content_filter=filter:dummy
>далее как я говорил
>только в скрипте добавте еще одну строчку
>grep 'inspect_word' in.$$ && $SENDMAIL mailbox_for_copy@my_domain < in.$$
>
>соответственно заменив inspect_word и mailbox_for_copy@my_domain Короче ничего у меня не получается ((
Делаю всё по написанному, но сани так и не сдвинулись с места.
Вот мой master.cf
localhost:10025 inet n - n - 2 smtpd
-o content_filter=filter:dummy
-o myhostname=smtp-filter.mail.com
-o local_recipient_maps=
-o relay_recipient_maps=
-o smtpd_restriction_classes=
-o smtpd_client_restrictions=
-o smtpd_helo_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o mynetworks=127.0.0.0/8
-o strict_rfc821_envelopes=yes
-o smtpd_error_sleep_time=0
-o smtpd_soft_error_limit=1001
-o smtpd_hard_error_limit=1000
-o smtpd_client_connection_count_limit=0
-o smtpd_client_connection_rate_limit=0
-o receive_override_options=no_unknown_recipient_checks,no_header_body_checks
-o smtpd_authorized_xforward_hosts=127.0.0.0/8filter unix - n n - 10 pipe
flags=Rq user=nobody argv=/etc/postfix/script -f ${sender} -- ${recipient}
Далее script
#!/bin/sh# Simple shell-based filter. It is meant to be invoked as follows:
# /path/to/script -f sender recipients...
# Localize these. The -G option does nothing before Postfix 2.3.
INSPECT_DIR=/var/spool/filter
SENDMAIL="/usr/sbin/sendmail -G -i" # NEVER NEVER NEVER use "-t" here.
# Exit codes from <sysexits.h>
EX_TEMPFAIL=75
EX_UNAVAILABLE=69
# Clean up when done or when aborting.
trap "rm -f in.$$" 0 1 2 3 15
#Start processing.
cd $INSPECT_DIR || {
echo $INSPECT_DIR does not exist; exit $EX_TEMPFAIL; }
cat >in.$$ || {
echo Cannot save mail to file; exit $EX_TEMPFAIL; }
# Specify your content filter here.
grep "secret" in.$$ || {
echo Message content rejected; exit $EX_UNAVAILABLE; }
$SENDMAIL "$@" <in.$$
grep 'secret' in.$$ && $SENDMAIL my@mail.com < in.$$
Когда запускаю скрипт вручную, он отрабатывает нормально, только выдаёт на экран найденное слово secret.
Когда я пытаюсь отправить почту через постфикс, то получаю следующие ошибки в логе
Aug 10 23:02:25 preved postfix/qmgr[4318]: warning: premature end-of-input on private/filter socket while reading input attribute name
Aug 10 23:02:25 preved postfix/qmgr[4318]: warning: private/filter socket: malformed response
Aug 10 23:02:25 preved postfix/master[4315]: warning: process /usr/libexec/postfix/pipe pid 4474 exit status 1
Aug 10 23:02:25 preved postfix/master[4315]: warning: /usr/libexec/postfix/pipe: bad command startup -- throttling
Aug 10 23:02:25 preved postfix/qmgr[4318]: warning: transport filter failure -- see a previous warning/fatal/panic logfile record for the problem description
Aug 10 23:02:25 preved postfix/qmgr[4318]: 8674B12C01A0: to=<my@mail.com>, relay=none, delay=1.1, delays=0.05/1/0/0, dsn=4.3.0, status=deferred (unknown mail transport error)
Что я делаю не так ?