2 # Copyright (C) 2008-2013, Eric Wong <e@80x24.org>
3 # License: GPLv3 or later <http://www.gnu.org/licenses/gpl-3.0.txt>
4 # This is installed as /etc/dc-dcvr on my system
5 # to use with postfix main.cf: mailbox_command = /etc/dc-dlvr "$EXTENSION"
6 DELIVER=/usr/lib/dovecot/deliver
8 # my personal preference is to use a catchall account to avoid generating
9 # backscatter, as invalid emails are usually spam
11 catchall) exec $DELIVER ;;
14 # change if your spamc/spamd listens elsewhere
17 # allow plus addressing to train spam filters, $1 is the $EXTENSION
18 # which may be "trainspam" or "trainham". Only allow spam training
19 # when $CLIENT_ADDRESS is empty (local client)
20 case $1,$CLIENT_ADDRESS in
21 trainspam,) exec $spamc -L spam > /dev/null 2>&1 ;;
22 trainham,) exec $spamc -L ham > /dev/null 2>&1 ;;
25 TMPMSG=$(mktemp -t dc-dlvr.orig.$USER.XXXXXX || exit 1)
28 # pre-filter, for infrequently read lists which do their own spam filtering:
29 if test -r ~/.dc-dlvr.pre
33 DEFAULT_INBOX=$(. ~/.dc-dlvr.pre)
34 case $DEFAULT_INBOX in
35 '') exec rm -f $rm_list ;;
36 INBOX) ;; # do nothing
38 $DELIVER -m $DEFAULT_INBOX < $TMPMSG
42 PREMSG=$(mktemp -t dc-dlvr.orig.$USER.XXXXXX || exit 1)
43 rm_list="$rm_list $PREMSG"
46 $spamc -E --headers < $PREMSG > $TMPMSG
48 $spamc -E --headers > $TMPMSG
56 1) $DELIVER -m INBOX.spam < $TMPMSG ;;
58 # users may override normal delivery and have it go elsewhere
59 if test -r ~/.dc-dlvr.rc
63 $DELIVER -m INBOX < $TMPMSG