#!/bin/sh # Filter called by the Filter module on all incoming messages # See /usr/share/doc/mailman-filter/README t=`mktemp /tmp/mailman-filter_XXXXXXXX` judge() { CODE=$1 TOMOD="$2" TOSENDER="$3" if [ -z "$TOSENDER" ] ; then TOSENDER="$TOMOD" fi echo -e "$TOMOD\n=====\n$TOSENDER\n=====" rm -f $t exit $CODE } if ! spamc --headers >$t ; then judge 1 "Spam filter failed" "Message has been held for moderation because of spam filter failure." fi grep -q '^X-Spam-Level: \*\*\*\*\*\*' $t && judge 2 "Spam filter declared this message spam." grep -q '^X-Spam-Level: \*\*' $t && judge 1 "Spam filter declared this message possible spam." judge 0 ""