# Note: add E flag to next recipe when uncommenting
#:0
#* SPAMTRAPPED ?? .
-#{
+#{
# LOG="spamfilter: skipping checks for spamtrapped message$NL"
# :0 fw
# |$FORMAIL -I"X-Spam: spamtrapped"
#}
# check whether this message is being reinjected
-TRAINED_AS
:0
-*$ $REPROC_MESSAGE
-* ^X-Trained-As: \/(h|sp)am
+*$ $MSG_DEJAVU
{
- LOG="spamfilter: skipping already trained $MATCH$NL"
:0
- * MATCH ?? spam
- { IS_SPAM=already-trained }
+ * ^X-Trained-As: \/(h|sp)am
+ {
+ LOG="spamfilter: skipping already trained $MATCH$NL"
+ :0
+ * MATCH ?? spam
+ { IS_SPAM=already-trained }
+ }
+
+ :0 E
+ { LOG="spamfilter: skipping reinjected message$NL" }
}
# let earlier parts of the mailfilter cause bypassing the checks
:0 E
* SKIP_SPAMCHECKS ?? .
-{
- LOG="spamfilter: skipping checks as requested: $SKIP_SPAMCHECKS$NL"
+{
+ LOG="spamfilter: skipping checks as requested: $SKIP_SPAMCHECKS$NL"
:0 fw
|$FORMAIL -I"X-Spam: unknown (skip requested)"
SPAM_UNKNOWN=skip-requested
:0 fw
|$FORMAIL -I"X-Spam: unknown (check skipped)"
SPAM_UNKNOWN=skip-match
+ SKIP_SPAMCHECKS=match
}
# sanity check on message size
:0 E
* CRM_SPAM ?? SPAM
* SA_SPAM ?? Yes
- {
+ {
IS_SPAM=sa+crm
:0 fw
|$FORMAIL -I"X-Spam: yes (crm114:$CRM_SCORE SA:$SA_SCORE)"
# schedule spamtrapped ham for retraining as spam
:0
* SPAMTRAPPED ?? .
+* ! SKIP_SPAMCHECKS ?? .
* ! IS_SPAM ?? .
-{
+{
LOG="spamfilter: found spamtrapped ham, retraining...$NL"
:0 fw
|$FORMAIL -I"X-Spam: spamtrapped ham"
IS_SPAM=spamtrapped-ham
RETRAIN=spam
+ SPAM_UNSURE
}
-INCLUDERC=$PMDIR/handlespam
#VERBOSE=no