A Postfix nevű levél továbbító programhoz szeretnénk saját szűrőt írni shell programban.
Először létre kell hoznunk egy filter nevű felhasználót és egy csoportot is.
# groupadd filter # mkdir /var/spool/filter # useradd -d /var/spool/filter -g filter filter # chown filter.filter /var/spool/filter
Filter létrehozása:
cat > /var/spool/filter/filter.sh #!/bin/sh # A levelet a MAILTEXT változóba tesszük MAILTEXT=`cat` # A fejléc részben elhelyezünk egy újabb sort: MAILTEXT=`echo "$MAILTEXT" | formail -i "X-Custom-Header: Szurt level"` # Ha készen van elküldjük echo "$MAILTEXT" | /usr/sbin/sendmail -G -i "$@" exit $?
Ez a szűrő beilleszt a fejrészbe egy sort ami X-Custom-Header: Szurt level szavakat fűzi egy levél fejrészéhez. A levélben bármilyen változtatást tehetünk ami a levé tartalmát nem változtatja.
A scriptet a filter felhasználónak és a filter csoportnak adjuk át:
# chown filter.filter /var/spool/filter/filter.sh # chmod u+w /var/spool/filter/filter.sh
Ez után be kell állítani a postfixet, hogy használja a filterünket. Ehhez szükség van két új sorra/beállításra és egy már létező beállítás megváltoztatására:
Postfix master.cf végére:
filter unix - n n - 10 pipe
flags=Rq user=filter argv=/usr/local/filter/filter.sh -f ${sender} -- ${recipient}
Postfix master.cf-ben javítani smtp részt:
smtp inet n - n - - smtpd -o content_filter=user_filter:dummy
A végén a postfixet újratöltjük:
# /etc/init.d/postfix reload