# symptom: $IS_SPAM is set
# reaction: file as spam
#
-# 4a. message needs to be retrained as spam
-# symptom: $CRM_RETRAIN is set to spam
+# 4. message needs to be retrained as spam
+# symptom: $RETRAIN is set to spam
# reaction: retrain filters, report, and file as spam
#
-# 4b. message is spamtrapped
-# symptom: $SPAMTRAPPED is set
-# reaction: train filters, report, and file as spam
-#
# 5. message needs to be retrained as ham
-# symptom: $CRM_RETRAIN is set to ham
+# symptom: $RETRAIN is set to ham
# reaction: retrain crm114 and resubmit the message to the spamfilter
#
# 6. spam degree is unknown:
}
:0 E
-* 1^0 CRM_RETRAIN ?? spam
-* 1^0 SPAMTRAPPED ?? .
+* RETRAIN ?? spam
{
LOG="spamfilter: (re)training as spam$NL"
:0 fw
}
:0 E
-* CRM_RETRAIN ?? ham
+* RETRAIN ?? ham
{
LOG="spamfilter: retraining as ham$NL"
:0 fw
INCLUDERC=$PMDIR/pre-spam-cleanup
# no need to reprocess messages that went into a spamtrap
-:0
-* SPAMTRAPPED ?? .
-{
- LOG="spamfilter: skipping checks for spamtrapped message$NL"
- :0 fw
- |$FORMAIL -I"X-Spam: spamtrapped"
-}
+# UPDATE: retrain them only if diagnosed as non-spam, see below
+#:0
+#* SPAMTRAPPED ?? .
+#{
+# LOG="spamfilter: skipping checks for spamtrapped message$NL"
+# :0 fw
+# |$FORMAIL -I"X-Spam: spamtrapped"
+#}
# let earlier parts of the mailfilter cause bypassing the checks
:0 E
LOG="spamfilter: scheduling crm114 retraining with HAM (score $SA_SCORE <= $CRM_UNSURE_SA_AUTOTRAIN_LIMIT_HAM)$NL"
:0 fw
|$FORMAIL -A "X-CRM114-Autotrain: ham, according to SA (score $SA_SCORE <= $CRM_UNSURE_SA_AUTOTRAIN_LIMIT_HAM)"
- CRM_RETRAIN=ham
+ RETRAIN=ham
}
# retrain as spam
LOG="spamfilter: scheduling crm114 retraining with SPAM (score $SA_SCORE > $CRM_UNSURE_SA_AUTOTRAIN_LIMIT_SPAM)$NL"
:0 fw
|$FORMAIL -A "X-CRM114-Autotrain: spam, according to SA (score $SA_SCORE > $CRM_UNSURE_SA_AUTOTRAIN_LIMIT_SPAM)"
- CRM_RETRAIN=spam
+ RETRAIN=spam
}
# skip retraining if SA is not convinced
* ? perl -e "$SA_SCORE <= $CRM_MISCLASSIFY_SA_AUTOTRAIN_LIMIT_HAM || exit 1"
{
LOG="spamfilter: crm114 found spam ($CRM_SCORE), but SA is more convincing ($SA_SCORE <= $CRM_MISCLASSIFY_SA_AUTOTRAIN_LIMIT_HAM)$NL"
- CRM_RETRAIN=ham
+ RETRAIN=ham
:0 fw
|$FORMAIL -A "X-CRM114-Retrain: ham, according to SA (score $SA_SCORE <= $CRM_MISCLASSIFY_SA_AUTOTRAIN_LIMIT_HAM)"
}
* ? perl -e "$SA_SCORE > $CRM_MISCLASSIFY_SA_AUTOTRAIN_LIMIT_SPAM || exit 1"
{
LOG="spamfilter: crm114 found ham ($CRM_SCORE), but SA is more convincing ($SA_SCORE > $CRM_MISCLASSIFY_SA_AUTOTRAIN_LIMIT_SPAM)$NL"
- CRM_RETRAIN=spam
+ RETRAIN=spam
:0 fw
|$FORMAIL -A "X-CRM114-Retrain: spam, according to SA (score $SA_SCORE > $CRM_MISCLASSIFY_SA_AUTOTRAIN_LIMIT_SPAM)"
}
|$FORMAIL -I"X-Spam: no (crm114:$CRM_SCORE SA:$SA_SCORE)"
}
+# schedule spamtrapped ham for retraining as spam
+:0
+* SPAMTRAPPED ?? .
+* ! IS_SPAM ?? .
+{ RETRAIN=spam }
+
INCLUDERC=$PMDIR/handlespam
#VERBOSE=no