#!/bin/sh # # filter.sh # # Simple filter to plug Anomy Sanitizer and SpamAssassin # into the Postfix MTA # # From http://advosys.ca/papers/postfix-filtering.html # Advosys Consulting Inc., Ottawa # # For use with: # Postfix 20010228 or later # Anomy Sanitizer revision 1.49 or later # SpamAssassin 2.42 or later # # Note: Modify the file locations to match your particular # server and installation of SpamAssassin. # File locations: # (CHANGE AS REQUIRED TO MATCH YOUR SERVER) INSPECT_DIR=/var/spool/filter SENDMAIL="/usr/lib/sendmail -i" ANOMY=/usr/local/anomy SANITIZER=/usr/local/anomy/bin/sanitizer.pl ANOMY_CONF=/usr/local/anomy/anomy.conf ANOMY_LOG=/dev/null SPAMASSASSIN=/usr/bin/spamassassin export ANOMY # Exit codes from <sysexits.h> EX_TEMPFAIL=75 EX_UNAVAILABLE=69 cd $INSPECT_DIR || { echo $INSPECT_DIR does not exist; exit $EX_TEMPFAIL; } # Clean up when done or when aborting. trap "rm -f out.$$" 0 1 2 3 15 cat | $SPAMASSASSIN -x | $SANITIZER \ $ANOMY_CONF 2>>$ANOMY_LOG > out.$$ || \ { echo Message content rejected; exit $EX_UNAVAILABLE; } $SENDMAIL "$@" < out.$$ exit $?