PATH = /bin:/usr/bin:/usr/bin #HOME = /home/jukie/bart MAILDIR = $HOME/mail MAILDIRDIR = $HOME/Mail #DEFAULT = /var/spool/mail/bart DEFAULT = $MAILDIR/inbox #LOGFILE = $MAILDIR/procmail.log LOGABSTRACT = yes LOGFILE = $HOME/.procmail/log MYDATE = `date +%Y-%m` #VERBOSE = yes #LOCKFILE=/var/tmp/$LOGNAME.lockmail # ---- ditch all spam before we get to real filters INCLUDERC=$HOME/.procmail/nkvir/nkvir-rc INCLUDERC=$HOME/.procmail/sanitizer/local-rules.procmail INCLUDERC=$HOME/.procmail/blacklist # ---- header cleanup # borowed from http://aperiodic.net/phil/configs/procmailrc # Silly people trying to set their own email status. :0 fhw * ^(X-)?Status: | formail -I Status -I X-Status # Likewise for SpamAssassin. I'll do my own checks, thanks. :0 fhw * ^X-Spam-(Status|Level|Score|Report): | formail -I X-Spam-Status -I X-Spam-Level -I X-Spam-Score -I X-Spam-Report # In a similar vein, I made this header up, but might as well have a # recipe to remove it for paranoia's sake. :0 fhw * ^X-List-Classify: | formail -I X-List-Classify # ---- if sender was marked as a spammer then send it to spam again :0 * ^Content-Type: *text/html { #:0 fw: html.lock :0 fw * ! ? formail -x"From:" | head -n1 | tr 'A-Z' 'a-z' | sed 's/.*\W\([0-9a-z_.-]\+@[0-9a-z_.-]\+\).*/\1/' | xargs -i grep -i {} $HOME/.lbdb/m_inmail.list | formail -I "X-Unwanted-Html: true" #:0 efw: html.lock :0 efw | formail -I "X-Unwanted-Html: false" } # ---- if the sender is known the add a X-From-Friend into header :0 * ^To:.*bart { #:0 fw: friend.lock :0 fw * ? formail -x"From:" | head -n1 | tr 'A-Z' 'a-z' | sed 's/.*\W\([0-9a-z_.-]\+@[0-9a-z_.-]\+\).*/\1/' | xargs -i grep -i {} $HOME/.mutt/aliases | formail -I "X-From-Friend: true" #:0 efw: friend.lock :0 efw | formail -I "X-From-Friend: false" } # ---- if I talked to the sender then add a X-From-Acquaintance into header :0 * ^To:.*bart { #:0 fw: acquaintance.lock :0 fw * ? formail -x"From:" | head -n1 | tr 'A-Z' 'a-z' | sed 's/.*\W\([0-9a-z_.-]\+@[0-9a-z_.-]\+\).*/\1/' | xargs lbdbq | formail -I "X-From-Acquaintance: true" #:0 efw: acquaintance.lock :0 efw | formail -I "X-From-Acquaintance: false" } # ---- perform an rbl check and update headers if it failed # http://impressive.net/archives/fogo/20000220233810.E7575@impressive.net :0 * ^Received: from.*\[\/[0-9.]+\].*by jukie\.net with { IP = $MATCH # trim it down to just the IP address :0 * IP ?? ^^\/[0-9.]+ { IP = $MATCH #:0 fw: rblcheck.lock :0 fw * ! ? /usr/bin/rblcheck -q $IP | formail -A"X-RBL-Check-Info: `echo; /usr/bin/rblcheck -t $IP | sed 's/^/ /'`" } } # ------------- spamassassin (mark only) #:1fw: spamassassin.lock :0fw | /usr/bin/nice -n10 /usr/bin/ionice -n3 /usr/bin/spamassassin # ------------- backup legit messages ARCHIVE=archive ARCHIVEFOLDER=$ARCHIVE/$MYDATE :0 Wic * ? test ! -d $ARCHIVEFOLDER | echo "MB">&2 ; pwd>&2 ; mkdir $ARCHIVEFOLDER && cd $ARCHIVE && rm -f now && ln -fs $MYDATE now :0 c: archive.lock $ARCHIVEFOLDER/rx # ------------- deliver to maildir also MD_ARCHIVEFOLDER=$MAILDIRDIR/$MYDATE/rx/ :0 Wic * ? test ! -d $MD_ARCHIVEFOLDER | echo "MD">&2 ; pwd>&2 ; mkdir -p $MD_ARCHIVEFOLDER/ && cd $MAILDIRDIR && rm -f now && ln -fs $MYDATE now :0 c: md_archive.lock $MD_ARCHIVEFOLDER # ------------- mutt mail reformatter :0 * !^Content-Type: message/ * !^Content-Type: multipart/ * !^Content-Type: application/pgp { :0 fBw * ^-----BEGIN PGP MESSAGE----- * ^-----END PGP MESSAGE----- | formail \ -i "Content-Type: application/pgp; format=text; x-action=encrypt" :0 fBw * ^-----BEGIN PGP SIGNED MESSAGE----- * ^-----BEGIN PGP SIGNATURE----- * ^-----END PGP SIGNATURE----- | formail \ -i "Content-Type: application/pgp; format=text; x-action=sign" } # ------------- pine mail prep #:0 BDc #* ^-----BEGIN PGP #* ^Version:.GnuPG #pgpenvelope-backup #:0 bfw #| /usr/bin/pgpenvelope_decrypt --filter # ------------- ebay / paypal :0:ebay.lock * ^From:.*@ebay.c * ^Received:\ from\ .*\.ebay\.com * ^DomainKey-Signature: * ^X-eBay- ebay :0:ebay.lock * ^Received:\ from\ .*\.paypal\.com * ^From\ service@(intl\.|)paypal\.com * ^X-Email-Type-Id: * ^DKIM-Signature: ebay :0:ebay.lock * ^Received:\ from\ .*\.usps.gov * ^X-AuditID: * ^X-Brightmail-Tracker: ebay :0:ebay.lock * ^Received:\ from\ .*\.vendio\.com * ^Received:\ from\ .*-vm\.andale\.com * ^From:\ .*@andale.com ebay # ------------- linux stuff :0:kernel.lock * ^X-Mailing-List:.*linux-kernel@vger.kernel.org linux/kernel-$MYDATE :0:omap.lock * ^X-Mailing-List:.linux-omap@vger.kernel.org linux/omap :0:dwarves.lock * ^X-Mailing-List:.*dwarves@vger.kernel.org linux/dwarves :0:git-core.lock * ^X-Mailing-List:.*git@vger.kernel.org git/core-$MYDATE :0:netfilter.lock * ^X-Mailing-List:.*netfilter-devel.vger.kernel.org linux/netfilter-$MYDATE :0:netfilter.lock * ^List-Id:.*netfilter.lists.netfilter.org linux/netfilter-$MYDATE :0:netfilter.lock * ^(To|Cc):.*netfilter@ linux/netfilter-$MYDATE :0:git-case.lock * ^List-Id:.*git-case.dmo.ca git/case :0:git-dist-bugs.lock * ^List-Id:.distributed.bug.tracking.*dist-bugs.kitenet.net git/dist-bugs :0:lguest.lock * ^List-Id:.*lguest.lists.ozlabs.org linux/lguest :0:thinkpad.lock * ^List-Id:.*linux-thinkpad.linux-thinkpad.org linux/thinkpad-$MYDATE :0:arm-kernel.lock * ^List-Id:.*linux-arm-kernel.lists.arm.linux.org.uk linux/arm-kernel :0:janitor.lock * ^List-Id:.*kernel-janitor-discuss.lists.sourceforge.net linux/janitor :0:janitor.lock * ^List-Id:.*kernel-janitors.lists.osdl.org linux/janitor :0:janitors.lock * ^List-Id:.*kernel-janitors.lists.linux-foundation.org linux/janitor :0:security-module.lock * ^(To|Cc):.*linux-security-module@ linux/security-module :0:mm.lock * ^(To|Cc):.*linux-mm@ linux/mm :0:fastboot.lock * ^List-Id:.*fastboot.lists.linux-foundation.org linux/fastboot :0:net.lock * ^X-Mailing-List:.linux-net.vger.kernel.org linux/net :0:aio.lock * ^(To|Cc):.*linux-aio@ linux/aio :0:crypto.lock * ^X-List-ID:.*linux-crypto.nl.linux.org linux/crypto :0:systemtap.lock * ^List-Post:.*mailto:systemtap@sourceware.org linux/systemtap :0:kernel.lock * ^(To|Cc):.*linux-kernel@ * !^(To|Cc):.*bart@ linux/kernel-$MYDATE # ------------- Xorg stuff :0:geode.lock * ^List-Id:.*xorg-driver-geode.lists.x.org xorg/geode :0:geode.lock * ^X-Launchpad-Bug:.*xserver-xorg-video-geode xorg/geode :0:xorg.lock * ^List-Id:.*xorg.lists.freedesktop.org xorg/xorg # ------------- lawyer :0:lawyer.lock * ^From:\ .*@mannlawyers.com work/lawyer :0:accountant.lock * ^From:\ .*@swindellsandwheatley.com work/accountant # ------------- Saygus, TimRyker's company :0:saygus.lock * ^(From|To|Cc):\ .*@[Ss]aygus.com work/saygus # ------------- xelerance.com :0:xelerance.lock * ^Received:\ from\ .*\.xelerance.com * !^List-Id:.*lists.openswan.org * !^List-Id:.*users.openswan.org * !^List-Id:.*dev.openswan.org work/xelerance :0:xelerance.lock * ^(To|Cc):.*@xelerance.com * !^(To|Cc):.*lists.openswan.org * !^(To|Cc):.*users.openswan.org * !^(To|Cc):.*dev.openswan.org work/xelerance # ------------- potential :0:potential.lock * ^From:.*Srinivas.Mankan work/potential :0:potential.lock * ^From:.*mankan_s.hotmail.com work/potential # ------------- thirdbrigade.com | trendmicro.com :0 * ^Received:\ from\ .*(thirdbrigade|trendmicro)\.com { :0 * ^To:.*cvs-thirdbrigade@ { :0 * B ?? Auto-increment.of.build.number.due.to.changes.in.directory.*in.revision /dev/null :0:thirdbrigade.lock * ^Subject:\ r[0-9]+\ -\ (in\ )?(trunk|branches/[^/]+)/(qa|Labs|Manager|Commons|OfficeScanPlugin|qa)[/:] work/3b-svn-other :0:thirdbrigade.lock * B ?? ^Subject:\ r[0-9]+\ -\ (in\ )?(trunk|branches/[^/]+)/(qa|Labs|Manager|Commons|OfficeScanPlugin|qa)[/:] work/3b-svn-other :0:thirdbrigade.lock work/3b-svn } :0:thirdbrigade.lock * ^From:.*Cron.*Daemon work/3b-cron :0:thirdbrigade.lock * ^From:.*fogbugz@ work/3b-bug :0 * ^From:.*(builds@ca-ot-devbuild3.us.trendnet.org|All_US_AutoBuild@dl.trendmicro.com|builds@thirdbrigade.com) * ^(To|Cc):.(undisclosed-recipients:|builds@ca-ot-devbuild3.us.trendnet.org|AllofTrendDSSoftwareDev@dl.trendmicro.com|All_US_AutoBuild@dl.trendmicro.com) { :0 fw | formail -I "X-trend-build: true" :0:thirdbrigade.lock * ^Subject:.*\ -\ Failed work/3b-build-fail :0:thirdbrigade.lock * ^Subject:.*[Autobuild:SUCCESS] work/3b-build-fail :0:thirdbrigade.lock * ^Subject:.*\ -\ Success work/3b-build-ok :0:thirdbrigade.lock * ^Subject:.*[Autobuild:FAIL] work/3b-build-ok } :0 * ^Content-class:.urn:content-classes:calendarmessage { :0 c !bart.trojanowski@gmail.com } :0:thirdbrigade.lock work/thirdbrigade } :0 * ^From:.*bart@jukie.net * ^(To|Cc):.*@(thirdbrigade|trendmicro).com work/thirdbrigade # ------------- symbio-technologies.com :0:symbio.lock * ^Received:\ from\ .*\.symbio-technologies.com work/symbio :0:symbio.lock * ^(To|Cc|From):.*@symbio-technologies.com work/symbio # ------------- finepoint.com :0 * ^Received:\ from\ .*\.finepoint.com { :0 * ^Content-class:.urn:content-classes:calendarmessage { :0 c !bart.trojanowski@gmail.com } :0:finepoint.lock work/finepoint } :0:finepoint.lock * ^(To|Cc|From):.*@finepoint.com work/finepoint # ------------- intldata.ca :0:idc.lock * ^Received:.from.mars.eng * ^Return-Path:.gnats.mars.eng work/idc :0:idc.lock * ^Received:\ from\ .*(datacast.com|intldata.ca) work/idc # ------------- safenet-inc.com :0:safenet.lock * ^Return-Path:.*@safenet-inc.com work/safenet :0:safenet.lock * ^(To|Cc|From):.*@safenet-inc.com work/safenet # ------------- somanetworks.com :0:soma.lock * ^Received:\ from\ .*\.somanetworks.com work/soma # ------------- debian stuff :0 * ^(X-Mailing-List|List-Id):.*lists.debian.org { :0 * ^Content-Type:.*charset="GB2312" /dev/null :0 * ^Content-Type: text/plain; charset=gb2312 /dev/null :0:debian.lock * ^X-Mailing-List:.*debian-devel@lists.debian.org debian/devel-$MYDATE :0:debian.lock * ^(X-Mailing-List|List-Id):.*debian-newmaint@lists.debian.org debian/newmaint :0:debian.lock * ^X-Mailing-List:.*debian-amd64@lists.debian.org debian/amd64 :0:debian.lock * ^X-Mailing-List:.*debian-x86-64@lists.debian.org debian/amd64 :0:debian.lock * ^X-Mailing-List:.*debian-dpkg@lists.debian.org debian/dpkg :0:debian.lock * ^X-Mailing-List:.*debian-security-announce@lists.debian.org debian/security-announce :0:debian.lock * ^X-Mailing-List:.*debian-devel-announce@lists.debian.org debian/devel-announce :0:debian.lock * ^X-Mailing-List:.*debian-news@lists.debian.org debian/news } :0 * ^(From|To|Cc):.*@.*debian.org { :0:pts.lock * ^X-Debian: * ^X-Loop:.*packages.qa.debian.org * ^X-PTS-Package: * ^X-PTS-Keyword: debian/pts } :0:vcs.lock * ^List-Id:.*vcs-pkg.lists.madduck.net debian/vcs :0:vcs.lock * ^List-Id:.*vcs-pkg-discuss.lists.alioth.debian.org debian/vcs # ------------- PC/SC :0:muscle.lock * ^List-Id:.*muscle.lists.musclecard.com sc/muscle # ------------- vimperator :0:vimperator.lock * ^List-Id:.*vimperator.mozdev.org vimperator :0:vimperator.lock * ^List-Id:.*vimperator.mozdev.mozdev.org vimperator # ------------- vim :0:vim.lock * ^List-Id:.*vim_dev.googlegroups.com vim/dev :0:vim.lock * ^List-Id:.*vim_use.googlegroups.com vim/use # ------------- notmuch :0:notmuch.lock * ^List-Id:.*notmuch.notmuchmail.org notmuch :0:notmuch.lock * ^(To|Cc):.notmuch@notmuchmail.org notmuch # ------------- wmii :0:wmii.lock * ^List-Id:.*wmii-lua.googlegroups.com wmii/lua :0:wmii.lock * ^List-Id:.*wmii.suckless.org wmii/list :0:wmii.lock * ^List-Id:.*dev.suckless.org wmii/list # ------------- bacula :0:bacula.lock * ^List-Id:.*bacula-users.lists.sourceforge.net bacula/users # ------------- amd64 stuff :0:amd64.lock * ^List-Id:.*discuss.x86-64.org amd64/discuss :0:amd64.lock * ^Mailing-List:.*discuss-.*@amd64.org amd64/discuss :0:amd64.lock * ^Mailing-List:.*discuss-.*@x86-64.org amd64/discuss # ------------- ion :0:ion.lock * ^List-Id:.*ion-general.*lists.berlios.de ion/general # ------------- mutt-ng :0:mutt-ng.lock * ^List-Id:.*mutt-ng-devel.*lists.berlios.de mutt-ng/devel :0:mutt-ng.lock * ^List-Id:.*mutt-ng-users.*lists.berlios.de mutt-ng/users # ------------- ghak :0:ghak.lock * ^List-Id:.*ghak-bofh.jukie.net ghak/bofh :0:ghak.lock * ^List-Id:.*worship-ghak.ghak.org ghak/worship # ------------- unlimitel :0:unlimitel.lock * ^From: wholesalemgr@unlimitel.ca personal/unlimitel # ------------- flyingbits :0:ottawa.lock * ^List-Id:.*ottawa-wifi.flyingbits.ca wifi/ottawa # ------------- otthtjobs@yahoogroups.com :0 * ^Mailing-List:.*otthtjobs@yahoogroups.com { :0 c ! atheistpriest@gmail.com :0:otthwjobs.lock work/otthwjobs } # ------------- security :0:security.lock * ^Received:.*secunia.com * ^To:.*bart-secunia@jukie.net * ^Subject:.*SA security/secunia :0:security.lock * ^List-Id:.*bugtraq.list-id.securityfocus.com security/bugtraq :0:security.lock * ^(List-Id|Mailing-List):.*securityjobs.*securityfocus.com security/jobs :0:security.lock * ^(List-Id|Mailing-List):.*linux-secnews.*securityfocus.com security/linux-secnews :0:security.lock * ^(List-Id|Mailing-List):.*secprog.*securityfocus.com security/prog :0:security.lock * ^(List-Id|Mailing-List):.*security-basics.*securityfocus.com security/basics :0:security.lock * ^(List-Id|Mailing-List):.*bugtraq.*securityfocus.com security/bugtraq :0:security.lock * ^(List-Id|Mailing-List):.*certification.*securityfocus.com security/certification :0:security.lock * ^(List-Id|Mailing-List):.*focus-linux.*securityfocus.com security/linux-focus :0:security.lock * ^(List-Id|Mailing-List):.*security-basics.*securityfocus.com security/basics # notify of security advisories :0 c * ^From:.*sec-adv@secunia.com * ^Subject:.*SA[0-9]+ | ${HOME}/bin/procmail-to-irc-secunia-advisories # ------------- oclug :0:oclug.lock * ^List-Id:.*linux.lists.oclug.on.ca oclug/tech :0:oclug.lock * ^List-Id:.*oclug.lists.oclug.on.ca oclug/list :0:oclug.lock * ^List-Id:.*oclug-board.lists.oclug.on.ca oclug/board :0:oclug.lock * ^List-Id:.*oclug-events.lists.oclug.on.ca oclug/events :0:oclug.lock * ^List-Id:.*oclug-announce.lists.oclug.on.ca oclug/announce # ------------- gpg folder :0:gpg.lock * ^List-Id:.*gnupg-devel.gnupg.org gpg/devel :0:gpg.lock * ^List-Id:.*gnupg-users.gnupg.org gpg/users # ------------- Openswan stuff :0:swan.lock * ^List-Id:.*nightly.lists.openswan.org swan/nightly :0:swan.lock * ^List-Id:.*users.openswan.org swan/users :0:swan.lock * ^List-Id:.*dev.openswan.org swan/devel :0:swan.lock * ^List-Id:.*announce.openswan.org swan/announce :0:swan.lock * ^List-Id:.*cvs.lists.openswan.org swan/cvs :0:swan.lock * ^List-Id:.*cvs.openswan.org swan/cvs :0:swan.lock * ^List-Id:.*commits.lists.openswan.org swan/git # ------------- kids :0:kids.lock * ^From:.*noreply@parenthacks.com kids/parenthacks # ------------- FreeS/WAN stuff :0:swan.lock * ^List-Id:.*design.lists.freeswan.org swan/design :0:swan.lock * ^List-Id:.*users.lists.freeswan.org swan/users :0:swan.lock * ^Sender:.*users-owner@mj2.freeswan.org swan/users :0:swan.lock * ^List-Id:.*bugs.lists.freeswan.org swan/bugs # ------------- ipsec :0:swan.lock * ^(To|Cc):.*ipsec@lists.tislabs.com swan/ipsec :0 * ^List-Id:.IP.Security.*ipsec.ietf.org. swan/ipsec :0 * ^List-Id:.*ipsec.ietf.org swan/ipsec # ------------- logs :0 * ^From:.*(root|logcheck)@.*jukie.net { :0 * ^X-Log:.*logcheck logs :0 * ^Subject:.*jukie.net\ 20..-..-..\ ..:..\ system\ check logs :0 * ^Subject:.*(tau|muon|xenon|quark)(.jukie.net)?\ 20..-..-..\ ..:..\ .*\ Events logs :0 * ^Subject:\ Tiger\ Auditing\ Report\ for\ (tau|muon|xenon|quark)(.jukie.net)? logs :0 * ^Subject:.*exim\ log\ stats logs :0 * ^Subject:.*LogWatch\ for logs :0 * ^Subject:.*Cron logs :0 * ^Subject:.*iptables usage logs } :0 * ^Message-Id:.*nullmailer.muon.jukie.net * ^Received: from localhost * ^Subject: Log for.*build buildd :0 * ^(Envelope|X-Original)-to:.*(bart|root)@jukie\.net * ^Received:.*meson.jukie.net * ^From:.*Bacula.*root@jukie\.net * ^Subject:.Bacula[: ] bacula/logs # ------------- :0 * ^List-Id:.*lanparty.jukie.net LanParty # ------------- :0 * ^(From|Cc|To|List-Id|Return-Path):.*ols-.*lists.linuxsymposium.org OttawaLinuxSymposium :0 * ^(From|Cc|To|List-Id|Return-Path):.*\@linuxsymposium.org OttawaLinuxSymposium # ------------- :0 * ^Mailing-List:.*HireTopTalent_Ottawa@yahoogroups.com HireTopTalent # ----------------------- spam controll ------------------------ :0 * ^From:.*CABA.*caba@caba.org * ^Reply-To:.*caba@caba.org /dev/null :0 * ^From:.*email@email.windriver.com /dev/null :0 * ^From:.*newsmail@marketing.goindustry.com /dev/null :0 * ^From:.*info@cata.ca /dev/null :0 * ^From:.*gifts@photogiftworld.com /dev/null :0 * ^From:.*newsletter@pixelcorps.com /dev/null :0 * ^From:.*support.*sylien.com /dev/null :0 * ^From:.*wsbeta@vmware.com /dev/null :0 * ^From:.*broadcast@tbnonline.com /dev/null :0 * ^From:.*audio@pbconferences.com /dev/null :0 * ^From:.*info@Intervista-Institute.com /dev/null :0 * ^From:.*dicepartners@dice.com /dev/null :0 * ^From:.*info@ceosalesolution.com /dev/null :0 * ^From:.*qnx@elqmailings.qnx.com * ^Subject:.*WEBINAR: /dev/null :0 * ^From:.*groups-noreply@linkedin.com * ^Subject:.*Wind.RiverwTechnology.Day /dev/null :0 * ^From:.*email@news.fotolia.com /dev/null :0 * ^From:.*info@negrielectronics.com /dev/null :0 * ^From:.*promo@e.newegg.ca /dev/null :0 * ^From:.*@37signals.com * ^Subject:.*Newsletter /dev/null :0 * ^Subject:.*has.left.a.message.for * ^From:.*Kiva.*do-not-reply.kiva.org /dev/null :0 * ^From:.CATAAlliance.*info@cata.ca * ^Message-ID:.*@.*\.cmpgnr\.com * ^Reply-To:.*CATAAlliance_.*@cmpgnr.com * ^X-Campaign: /dev/null :0 * ^From:.*CATA_WIT_Forum_Ottawa_Chapter_.*@cmpgnr.com * ^Message-ID:.*@.*\.cmpgnr\.com * ^X-Campaign: /dev/null :0 * ^From:.*info@eyebeam.org * ^Received:.salsalabs.net /dev/null :0 * ^To:.*bart@nexus.carleton.ca * ^X-Spam-Status: Yes spam/nexus-$MYDATE :0 * ^X-Spam-Status: Yes { :0 * ^X-Spam-Status: Yes, score=\/[0-9]+ spam/maybe-$MATCH :0 * ^X-Spam-Status: Yes, hits=\/[0-9]+ spam/maybe-$MATCH } :0 * ^X-RBL-Warning:.*in.a.black.list { :0 * ^X-Unwanted-Html:.*true spam/maybe-html-rbl :0 * ^X-Spam-Level: \*\*\*\*\* * ^X-Spam-Status: .*score=\/[0-9]+ spam/maybe-rbl-$MATCH } :0:spam.lock * ^X-Spam-Status: Yes spam/maybe :0:default.lock $DEFAULT