--- /dev/null
+#!/bin/sh
+
+FILTER=/usr/bin/bogofilter
+
+# Attempt to read from bogofilter configuration.
+FILTER_DIR=$(cat /etc/bogofilter.cf | sed 's/#.*//g' | grep ^bogofilter_dir | awk -F = '{ print $2 }')
+
+# WARNING! The -i is crucial, else you may see
+# messages truncated at the first period that is alone on a line
+# (which can happen with several kinds of messages, particularly
+# quoted-printable)
+# -G is ignored before Postfix 2.3 and tells it that the message
+# does not originate on the local system (Gateway submission),
+# so Postfix avoids some of the local expansions that can leave
+# misleading traces in headers, such as local address
+# canonicalizations.
+POSTFIX="/usr/sbin/sendmail -G -i"
+
+# No bogofilter_dir set in /etc/bogofilter.cf; fall back on directory
+# which persists across reboots.
+if [ -z "$FILTER_DIR" ]; then
+ FILTER_DIR=/etc/bogofilter
+ export BOGOFILTER_DIR=$FILTER_DIR
+fi
+
+# Exit codes from <sysexits.h>
+EX_TEMPFAIL=75
+EX_UNAVAILABLE=69
+
+cd $FILTER_DIR || \
+ { echo $FILTER_DIR does not exist; exit $EX_TEMPFAIL; }
+
+# Clean up when done or when aborting.
+trap "rm -f msg.$$ ; exit $EX_TEMPFAIL" 0 1 2 3 15
+
+# bogofilter -e returns: 0 for OK, nonzero for error
+rm -f msg.$$ || exit $EX_TEMPFAIL
+$FILTER -p -e > msg.$$ || exit $EX_TEMPFAIL
+
+exec <msg.$$ || exit $EX_TEMPFAIL
+rm -f msg.$$ # safe, we hold the file descriptor
+exec $POSTFIX "$@"
+exit $EX_TEMPFAIL