X-Git-Url: https://git.madduck.net/etc/mailfilter.git/blobdiff_plain/f133cb12ac933b7a2fe3849938621cc59cdab43b..92f8bd8e6c8457428fb09474f1192e4ff430ac0c:/procmail/spamfilter diff --git a/procmail/spamfilter b/procmail/spamfilter index 95a0cbc..491f157 100755 --- a/procmail/spamfilter +++ b/procmail/spamfilter @@ -29,21 +29,37 @@ PMDIR=${PMDIR:-$HOME/.etc/mailfilter/procmail} # |$FORMAIL -I"X-Spam: spamtrapped" #} -# check whether this message is being reinjected +# check whether this message is being resubmitted :0 *$ $MSG_DEJAVU { :0 - * ^X-Trained-As: \/(h|sp)am + * TRAINED_AS ?? . { - LOG="spamfilter: skipping already trained $MATCH$NL" + LOG="spamfilter: skipping already trained $TRAINED_AS$NL" + :0 fw + |$FORMAIL -I"X-Spam: $TRAINED_AS (already trained)" :0 - * MATCH ?? spam + * TRAINED_AS ?? spam { IS_SPAM=already-trained } } :0 E - { LOG="spamfilter: skipping reinjected message$NL" } + { + LOG="spamfilter: skipping resubmitted message$NL" + :0 fw + |$FORMAIL -I"X-Spam: unknown (resubmitted)" + } +} + +# do not run spamfilters if the message destination is already set +:0 E +* DEST ?? . +{ + LOG="spamfilter: message already routed to '$DEST'$NL" + :0 fw + |$FORMAIL -I"X-Spam: unknown (already routed)" + SPAM_UNKNOWN=already-destined } # let earlier parts of the mailfilter cause bypassing the checks @@ -81,6 +97,9 @@ PMDIR=${PMDIR:-$HOME/.etc/mailfilter/procmail} # now run the spamfilters :0 E { + INCLUDERC=$PMDIR/spamtraps + INCLUDERC=$PMDIR/spammers + INCLUDERC=$PMDIR/spampat INCLUDERC=$PMDIR/pre-spam-cleanup # crm114 @@ -89,6 +108,7 @@ PMDIR=${PMDIR:-$HOME/.etc/mailfilter/procmail} :0 * !SKIP_CRM ?? . { + #TODO: somehow filter out headers we added :0 fw |$CRM114