< Linux főoldal

Postfix filter

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
 
postfix_filter.txt · Utolsó módosítás: 2010/06/10 19:38 szerkesztette: admin
 
Hacsak máshol nincs egyéb rendelkezés, ezen wiki tartalma a következő licenc alatt érhető el:CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki