Updated Jan 24, 2008
Try the following crontab entries
0 0 * * * /usr/bin/find /home/*/Maildir/.Spam/cur/ -type f -mtime +7 | xargs rm -f 1> /dev/null
0 1 * * * sa-learn –spam /home/youruser/Maildir/.Spam/cur/* 1>/dev/null
The first line will check for spam older than 7 days and delete it. This is a very useful (and fast!) way to save diskspace.
Change ‘youruser’ to your actual user. Anything put in your spam folder on squirrelmail will be marked as spam.
Thanks to WastedMemory for helping me with this.
This assumes you’ve already set up a functioning MTA and have imap/pop working.
apt-get install spamassassin squrirelmail
Edit /etc/default/spamassassin and set ENABLED=1
Create a file called /etc/procmailrc
MAILDIR=$HOME/Maildir
DEFAULT=$HOME/Maildir/cur
DROPPRIVS=YES
:0fw
| /usr/bin/spamc:0:
* ^X-Spam-Status: Yes
$HOME/Maildir/.Spam/cur
To set up squirrelmail, edit /etc/apache2/sites-enabled/000-default (or whatever site you want to use) and add:
Alias /mail /usr/share/squirrelmail
<Directory /usr/share/squirrelmail>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
Restart apache2, squirrelmail
/etc/init.d/apache2 restart && /etc/init.d/spamassassin restart
As a normal user (su – user), do:
maildirmake (or maildirmake.courier) ~/Maildir
Go to http://your-ip/mail and log in as the user you created Maildir with. Log in, and send a test email to another address.
Back as your user, do:
cd ~/Maildir
cp -rp .Sent .Spam
It might be a good idea to have all new users have this directory created.
cp -r /home/user/Maildir /etc/skel
If you have many users that already exit, you can do this:
for x in `ls /home`; do
cp -r /etc/skel/Maildir /home/$x
chown -R $x /home/$x/Maildir
done
Spam will now go to their Spam folder. They can check this by subscribing to INBOX.Spam in squirrelmail (Folders)
You can change the sensitivity of Spamassassin by editing /etc/spamassassin/local.cf
required_score 1.0