# # Written by Sylvain MAURIN # CeCILL licence # http://www.cecill.info/licences/Licence_CeCILL_V2-en.html # # Add in /etc/procmailrc # INCLUDERC=/path/to/global/procmail/spamassassin PATH=$HOME/bin:/usr/bin:/usr/ucb:/bin:/usr/local/bin:. MAILDIR=$HOME/Maildir DEFAULT=$MAILDIR/ LOGFILE=$HOME/procmail.log VERBOSE=yes SPAMDIR=spam-poubelle HAMORSPAMDIR=spam-probable HOSTNAME=`hostname` :0 * < 25600 * ^Subject:.*ANTISPAM ISC { :0h FROM=|formail -xFrom: :0c | cat >$HOME/ISC-antispam.chk ; md5sum $HOME/ISC-antispam.chk >$HOME/ISC-antispam.chk.md5 MD5ANTISPAMCHK=`cat $HOME/ISC-antispam.chk.md5 | cut -f 1 -d' ' ` :0 * ^Subject:.*ANTISPAM ISC OK * !^X-Loop:$FROM | ( formail -r -i"To:$FROM" -i"X-Loop:$FROM" -i"Subject: ISC Antispam - checksum.ID=ISC-ANTISPAM-OK-$MD5ANTISPAMCHK" -I"X-ISC-antispam: chk" ; \ echo "To allow bayensian filter check, just 'REPlY' to this message" ;\ echo "or send to yourself mail with subject including string : " ;\ echo -ne "ISC-ANTISPAM-OK-" ; \ cat $HOME/ISC-antispam.chk.md5 | cut -f 1 -d' '; echo "" ; \ echo "Pour autoriser le filtre bayesien, repondez a ce message" ;\ echo "ou envoyez vous un mail avec la chaine de caratere suivante dans le sujet :" ;\ echo -ne "ISC-ANTISPAM-OK-" ; \ cat $HOME/ISC-antispam.chk.md5 | cut -f 1 -d' '; echo "" ; \ ) | $SENDMAIL -oi -t :0 * ^Subject:.*ANTISPAM ISC KO * !^X-Loop:$FROM | ( formail -r -i"To:$FROM" -i"X-Loop:$FROM" -i"Subject: ISC Antispam - checksum.ID=ISC-ANTISPAM-KO-$MD5ANTISPAMCHK" -I"X-ISC-antispam: chk" ; \ echo "To deny bayensian filter check, just 'REPlY' to this message" ;\ echo "or send to yourself mail with subject including string : " ;\ echo -ne "ISC-ANTISPAM-KO-" ; \ cat $HOME/ISC-antispam.chk.md5 | cut -f 1 -d' '; echo "" ; \ echo "Pour interdir le filtre bayesien, repondez a ce message" ;\ echo "ou envoyez vous un mail avec la chaine de caratere suivante dans le sujet :" ;\ echo -ne "ISC-ANTISPAM-KO-" ; \ cat $HOME/ISC-antispam.chk.md5 | cut -f 1 -d' '; echo "" ; \ ) | $SENDMAIL -oi -t :0 * ^Subject:.*ANTISPAM ISC INIT * !^X-Loop:$FROM | ( formail -r -i"To:$FROM" -i"X-Loop:$FROM" -i"Subject: ISC Antispam - checksum.ID=ISC-ANTISPAM-INIT-$MD5ANTISPAMCHK" -I"X-ISC-antispam: chk" ; \ echo "To adapt bayensian filter from your server " ; \ echo "maildir, just 'REPlY' to this message or mail " ;\ echo "yourself with any subject including string : " ;\ echo -ne "ISC-ANTISPAM-INIT-" ; \ cat $HOME/ISC-antispam.chk.md5 | cut -f 1 -d' '; echo "" ; \ echo "Pour initialiser le filtre bayesien a partir des" ;\ echo "messages de votre boite aux lettres du serveur, " ;\ echo "repondez a ce message ou envoyez vous un mail avec" ;\ echo "un sujet incluant la chaine de caratere suivante :" ;\ echo -ne "ISC-ANTISPAM-INIT-" ; \ cat $HOME/ISC-antispam.chk.md5 | cut -f 1 -d' '; echo "" ; \ ) | $SENDMAIL -oi -t } :0 * < 25600 * ^Subject:.*ISC-ANTISPAM- * !X-ISC-antispam * ? test -f $HOME/ISC-antispam.chk.md5 { MD5ANTISPAMCHK=`cat $HOME/ISC-antispam.chk.md5 | cut -f 1 -d' ' ` :0h FROM=|formail -xFrom: :0ri * ^Subject:.*ISC-ANTISPAM-OK * $^Subject:.*ISC-ANTISPAM-OK-${MD5ANTISPAMCHK} | ( formail -r -i"To:$FROM" -i"X-Loop:$FROM" -i"Subject: ISC Antispam - enabled" -I"X-ISC-antispam: enabled" ; \ echo "OK $MD5ANTISPAMCHK" >$HOME/ISC-antispam ; \ maildirmake -f $DEFAULT $SPAMDIR ; \ maildirmake -f $DEFAULT $HAMORSPAMDIR ; \ touch $HOME/ISC-antispam.chk $HOME/ISC-antispam.chk.md5 ; \ rm -f $HOME/ISC-antispam.chk $HOME/ISC-antispam.chk.md5 ; \ echo "Last command done : allow bayesian antispam filter" ; \ ) | $SENDMAIL -oi -t :0ri * ^Subject:.*ISC-ANTISPAM-KO * $^Subject:.*ISC-ANTISPAM-KO-${MD5ANTISPAMCHK} | ( formail -r -i"To:$FROM" -i"X-Loop:$FROM" -i"Subject: ISC Antispam - disabled" -I"X-ISC-antispam: disabled" ; \ touch $HOME/ISC-antispam $HOME/ISC-antispam-ask-sa-learn $HOME/ISC-antispam.chk $HOME/ISC-antispam.chk.md5 ; \ rm -f $HOME/ISC-antispam $HOME/ISC-antispam-ask-sa-learn $HOME/ISC-antispam.chk $HOME/ISC-antispam.chk.md5 ; \ find $DEFAULT/.$SPAMDIR/cur/ -type f -name "?????*.M*.$HOSTNAME,*" -exec rm \{\} \; ; \ find $DEFAULT/.$HAMORSPAMDIR/cur/ -type f -name "?????*.M*.$HOSTNAME,*" -exec rm \{\} \; ; \ echo "Last command done : deny bayesian antispam filter" ; \ ) | $SENDMAIL -oi -t :0 * ^Subject:.*ISC-ANTISPAM-INIT * $^Subject:.*ISC-ANTISPAM-INIT-${MD5ANTISPAMCHK} { :0ri * ? test -f $HOME/ISC-antispam | ( formail -r -i"To:$FROM" -i"X-Loop:$FROM" -i"Subject: ISC Antispam - init spam DB scheduled" -I"X-ISC-antispam: init" ; \ echo "INIT $MD5ANTISPAMCHK" >$HOME/ISC-antispam-ask-sa-learn ; \ touch $HOME/ISC-antispam-ask-sa-learn $HOME/ISC-antispam.chk $HOME/ISC-antispam.chk.md5 ; \ rm -f $HOME/ISC-antispam.chk $HOME/ISC-antispam.chk.md5 ; \ echo "Last command done : server daemon should adapt bayesian antispam filter." ; \ echo "Because its intensiv CPU consumption, this daemon is a low priority job." ; \ echo "You will be advertised when task is done, beware : it can take _DAYS_" ; \ ) | $SENDMAIL -oi -t :0ri * ? test ! -f $HOME/ISC-antispam | ( formail -r -i"To:$FROM" -i"X-Loop:$FROM" -i"Subject: ISC Antispam - can not init spam DB" -I"X-ISC-antispam: disabled" ; \ touch $HOME/ISC-antispam.chk $HOME/ISC-antispam.chk.md5 ; \ rm -f $HOME/ISC-antispam.chk $HOME/ISC-antispam.chk.md5 ; \ echo "Last command done : server daemon refuses to adapt bayesian antispam filter." ; \ echo "Please, enable ISC-antispam system first." ; \ ) | $SENDMAIL -oi -t } } :0fw: spamassassin.lock * < 256000 * ? test -f $HOME/ISC-antispam | /usr/bin/spamassassin :0: * ^X-Spam-Status: Yes .spam-probable/