Russ Allbery recently commented that it is really nice to receive patches for trivial scripts posted online.
So in the spirit of sharing here is my latest toy script:
This is a trivial script which searches a Maildir hierarchy and outputs a list of each email address which you've ever sent mail to.
Why would you want that? In my case my (personal) spam filtering makes use of whitelisting, and the assumption is that if I've ever mailed you in the past then I want to see your replies, and you get a break.
These days my (personal) mail filtering has a couple of broad rules:
- If your mail is HTML it is junk. Unless I'm bored.
- If your mail is GPG signed/encrypted I will see it.
- If your mail address is on my whitelist then I want to see it.
After that then I see your message only if CRM119 decides I should.
# # remove potentially spoofed header # :0 fhw * ^X-whitelist: | $FORMAIL -I "X-whitelist" # # GPG-signed messages are OK and will be whitelisted # :0fW * < 1024000 |/home/steve/bin/isgpged :0e | $FORMAIL -A "X-whitelist: yes" -A "X-GPG-Signed: Yes" # # Get the sender of the message. # FROM=`formail -x From:| sed 's/^\([^@]*[ <]\)//' | sed 's/\([ >]\).*$//'` # # Add a whitelist tag if appropriate # :0 fhw * !^X-whitelist: yes * ? test -s $HOME/.procmail_whitelist * ? echo $FROM| fgrep -qisf $HOME/.procmail_whitelist | $FORMAIL -A "X-whitelist: yes" -A "X-Whitelist-Test: $FROM"
The net result of these tests is that I can now run the spam filter on non-whitelisted mails:
# # Run CRM114 mailreaver # :0fw: .msgid.lock * !^X-whitelist: yes | /usr/bin/crm -u /home/steve/.crm /usr/share/crm114/mailreaver.crm # # Spam. # :0: * ^X-CRM114-Status: SPAM.* * !^X-whitelist: yes .CRM.Spam/ # # Unsure. # :0 * ^X-CRM114-Status:.*UNSURE * !^X-whitelist: yes .CRM.Unsure/
There is more to my setup than that, but that's the minimum you'd need to see.
Of course this is a reminder, once more, that the kind of filtering that you carry out for yourself is different from that that other people will do.
ObFilm: The NeverEnding Story