From: martin f. krafft Date: Thu, 9 Aug 2007 21:20:58 +0000 (+0200) Subject: only retrain spamtrapped ham X-Git-Url: https://git.madduck.net/etc/mailfilter.git/commitdiff_plain/ad1d64c3df127f0da629bf66b36696294c11a8cb only retrain spamtrapped ham --- diff --git a/procmail/defines b/procmail/defines index 4fec548..291bbf2 100644 --- a/procmail/defines +++ b/procmail/defines @@ -165,6 +165,6 @@ SPAM_UNSURE # skipping. SPAM_UNKNOWN -# CRM_RETRAIN -# if set, causes crm114 to be retrained, according to the variable's value -CRM_RETRAIN +# RETRAIN +# if set, causes spamfilters to be retrained, according to the variable's value +RETRAIN diff --git a/procmail/handlespam b/procmail/handlespam index 4095f60..809e92d 100644 --- a/procmail/handlespam +++ b/procmail/handlespam @@ -12,16 +12,12 @@ # 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: @@ -50,8 +46,7 @@ } :0 E -* 1^0 CRM_RETRAIN ?? spam -* 1^0 SPAMTRAPPED ?? . +* RETRAIN ?? spam { LOG="spamfilter: (re)training as spam$NL" :0 fw @@ -60,7 +55,7 @@ } :0 E -* CRM_RETRAIN ?? ham +* RETRAIN ?? ham { LOG="spamfilter: retraining as ham$NL" :0 fw diff --git a/procmail/spamfilter b/procmail/spamfilter index a882087..0fab788 100755 --- a/procmail/spamfilter +++ b/procmail/spamfilter @@ -21,13 +21,14 @@ PMDIR=${PMDIR:-$HOME/.etc/mailfilter/procmail} 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 @@ -119,7 +120,7 @@ INCLUDERC=$PMDIR/pre-spam-cleanup 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 @@ -129,7 +130,7 @@ INCLUDERC=$PMDIR/pre-spam-cleanup 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 @@ -152,7 +153,7 @@ INCLUDERC=$PMDIR/pre-spam-cleanup * ? 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)" } @@ -177,7 +178,7 @@ INCLUDERC=$PMDIR/pre-spam-cleanup * ? 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)" } @@ -205,5 +206,11 @@ INCLUDERC=$PMDIR/pre-spam-cleanup |$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