|
@@ -0,0 +1,34 @@
|
|
1
|
+#!/bin/sh
|
|
2
|
+
|
|
3
|
+FILTER=/usr/bin/bogofilter
|
|
4
|
+FILTER_DIR=/mnt/sda1/var/spool/bogofilter
|
|
5
|
+# WARNING! The -i is crucial, else you may see
|
|
6
|
+# messages truncated at the first period that is alone on a line
|
|
7
|
+# (which can happen with several kinds of messages, particularly
|
|
8
|
+# quoted-printable)
|
|
9
|
+# -G is ignored before Postfix 2.3 and tells it that the message
|
|
10
|
+# does not originate on the local system (Gateway submission),
|
|
11
|
+# so Postfix avoids some of the local expansions that can leave
|
|
12
|
+# misleading traces in headers, such as local address
|
|
13
|
+# canonicalizations.
|
|
14
|
+POSTFIX="/usr/sbin/sendmail -G -i"
|
|
15
|
+export BOGOFILTER_DIR=/var/lib/bogofilter
|
|
16
|
+
|
|
17
|
+# Exit codes from <sysexits.h>
|
|
18
|
+EX_TEMPFAIL=75
|
|
19
|
+EX_UNAVAILABLE=69
|
|
20
|
+
|
|
21
|
+cd $FILTER_DIR || \
|
|
22
|
+ { echo $FILTER_DIR does not exist; exit $EX_TEMPFAIL; }
|
|
23
|
+
|
|
24
|
+# Clean up when done or when aborting.
|
|
25
|
+trap "rm -f msg.$$ ; exit $EX_TEMPFAIL" 0 1 2 3 15
|
|
26
|
+
|
|
27
|
+# bogofilter -e returns: 0 for OK, nonzero for error
|
|
28
|
+rm -f msg.$$ || exit $EX_TEMPFAIL
|
|
29
|
+$FILTER -p -e > msg.$$ || exit $EX_TEMPFAIL
|
|
30
|
+
|
|
31
|
+exec <msg.$$ || exit $EX_TEMPFAIL
|
|
32
|
+rm -f msg.$$ # safe, we hold the file descriptor
|
|
33
|
+exec $POSTFIX "$@"
|
|
34
|
+exit $EX_TEMPFAIL
|