X-Git-Url: https://git.madduck.net/etc/mailfilter.git/blobdiff_plain/406e0c358dbe50c3ff0463c12f3d9bcdccfaf5d2..3b32045cdff2adde99553954828361a4739697d9:/procmail/defines diff --git a/procmail/defines b/procmail/defines index 2e8c1f5..6181ba5 100644 --- a/procmail/defines +++ b/procmail/defines @@ -25,6 +25,7 @@ PROCMAIL="$NICE /usr/bin/procmail -p $PMDIR/procmailrc" FORMAIL="$NICE /usr/bin/formail -f" EGREP="$NICE /bin/egrep" SED="$NICE /bin/sed" +BIN_DATE="/bin/date" DELIVER="$NICE /usr/lib/dovecot/deliver" CRM114="$NICE /usr/share/crm114/mailreaver.crm -u $MAILFILT/crm114/" @@ -36,9 +37,6 @@ TRAINER="$NICE $MAILFILT/bin/train" SQLITE="$NICE /usr/bin/sqlite3" -OURDATE="`date -R`" -OURDATE_SHORT=`date +%Y.%m.%d.%H.%M.%N` - BASE=$HOME/.maildir #DEFAULT="|$DELIVER" @@ -50,7 +48,7 @@ SPAMCHECK_MAX_MESSAGE_SIZE=512000 # if crm114 is unsure and SA returns a score less-than-or-equal to this, # autotrain crm114 with ham -CRM_UNSURE_SA_AUTOTRAIN_LIMIT_HAM=2.0 +CRM_UNSURE_SA_AUTOTRAIN_LIMIT_HAM=0.0 # if crm114 classifies a message as spam but SA returns a score # less-than-or-equal to this, retrain crm114 CRM_MISCLASSIFY_SA_AUTOTRAIN_LIMIT_HAM=-1.0 @@ -77,10 +75,26 @@ DEJAVU_HEADER=X-Deja-Vu NULL=/dev/null DELAYED_QUEUE=$BASE/.delayed/ -TICKLER_QUEUE=$BASE/.tickler/ +TICKLER_QUEUE=$BASE/.store/ DISCARD=$BASE/.discard/ +SPAM=$BASE/.spam/ #DISCARD="'|$DELIVER -m BASE.discard'" +DELAY_NEXT_WEEKEND='next sunday 30 hours ago' # fri night, 18:00 +DELAY_TONIGHT='tomorrow 00:00 4 hours ago' # tonight at 20:00 +DELAY_AFTERNOON='tomorrow 00:00 5 hours ago' # today at 19:00 + +OURDATE="`$BIN_DATE +'%s %Y.%m.%d.%H.%M.%N %a, %d %b %Y %T %z'`" +:0 +*$ OURDATE ?? ^\/${RE_NOT_SPACE}+ +{ OURDATE_TS="$MATCH" } +:0 +*$ OURDATE ?? ^[0-9]+${RE_SPACE}+\/${RE_NOT_SPACE}+ +{ OURDATE_SHORT="$MATCH" } +:0 +*$ OURDATE ?? ^[0-9]+${RE_SPACE}+[0-9.]+${RE_SPACE}+\/.+ +{ OURDATE="$MATCH" } + ### variables from the message ### local recipient data @@ -117,25 +131,34 @@ INCLUDERC=$PMDIR/get-msgid :0 *$ ^Subject:$RE_EXTRACT_HEADER_VALUE -{ SUBJECT="$MATCH" } +{ + SUBJECT=$MATCH + + # mimedecode.c: * Disclaimer: We only handle charset of iso-8859-1 + :0 + * SUBJECT ?? =\?iso-8859-1\?[QBqb]\?.+\?= + { + DECODED="`echo Subject: $SUBJECT | mimedecode | iconv -f latin1 -t utf-8`" + :0 + *$ DECODED ?? ^Subject:$RE_EXTRACT_HEADER_VALUE + { SUBJECT=$MATCH } + } +} :0 *$ ^X-Original-To:$RE_EXTRACT_HEADER_VALUE { ORIGINAL_TO="$MATCH" } :0 E -{ LOG="NO ORIGINAL_TO: $MSGID" } +* ^Received: +{ LOGLATER="NO ORIGINAL_TO: $MSGID" } :0 *$ ^X-Trained-As:$RE_EXTRACT_HEADER_VALUE { TRAINED_AS="$MATCH" } :0 -*$ ^X-Tickle-Delivered:$RE_EXTRACT_HEADER_VALUE -{ TICKLE_DELIVERED="$MATCH" } - -:0 -*$ ^X-Delayed:$RE_EXTRACT_HEADER_VALUE -{ DELAYED="$MATCH" } +*$ ^X-Postponed:$RE_EXTRACT_HEADER_VALUE +{ POSTPONED="$MATCH" } # fix variable values for special cases INCLUDERC=$PMDIR/normalise @@ -197,3 +220,17 @@ RETRAIN # JUSTME # if set, contains reason why justme message was passed JUSTME + +# DISABLE_DELAYS +# if set, disables delaying messages +DISABLE_DELAYS + +# DELAY +# argument to /bin/date -d to indicate a message delay. This is overridden by +# RELEASE +DELAY + +# RELEASE +# /bin/date time expression indicating the time at which a message is to be +# released. Overrides DELAY. +RELEASE