SpamAssassin whitelist and blacklisting

Today I figured out how to specify whitelist and blacklist email addresses in SpamAssassin.

At the end of /etc/spamassassin/local.cf I added two lines:

include whitelist
include blacklist

Then in the /etc/spamassassin/whitelist file I added some email specifications, e.g.:

jj5@sixsigma:~$ cat /etc/spamassassin/whitelist
# Allow email from system services, e.g. from
# logwatch@hope.progclub.net or root@charity.progclub.org
whitelist_from *@*.progclub.*
# Similarly for blackbrick:
whitelist_from *@*.blackbrick.com

The /etc/spamassassin/blacklist file exists and is ready to go, but I haven’t blacklisted anything yet:

jj5@sixsigma:~$ cat /etc/spamassassin/blacklist
# No email addresses blacklisted yet.
#blacklist_from someone@example.com

Too easy.

There’s some more information on Whitelising a user.

At some point I hope to write a script that processes my users’ maildirs and whitelists everyone they’ve emailed.

Bash wait

Today I learned about the ‘wait’ command. It waits for background processes to terminate before returning, so you can fire off a bunch of jobs to be run in parallel and then wait for all of them to complete before continuing, like in this take-ownership.sh script I wrote tonight:

#!/bin/bash
if [ -n "$1" ]; then
  pushd "$1" > /dev/null 2>&1
  if [ "$?" -ne "0" ]; then
    echo "Cannot change dir to '$1'.";
    exit 1;
  fi
fi
sudo chown -R jj5:jj5 . &
sudo find . -type d -exec chmod u+rwx {} \; &
sudo find . -type f -exec chmod u+rw {} \; &
if [ -n "$1" ]; then
  popd > /dev/null 2>&1
fi
wait
exit 0