Mac OS X Server includes SpamAssassin that is called from amavisd and integrates with Postfix. SpamAssassin and ClamAV are called by amavisd in the standard setup.
Note: many of the commands used on this page require the installation of Developer Tools - install them before starting anything else.
Mac OS X Server includes v.3.0.x, but 3.2.1 is the latest as of July 24, 2007. Note 1: I personally do not know if 3.2 is compatible with Mac OS X Server's configuration, but hopefully it is; superficially at least, it appears to be working. Note 2: version 3.2.1 has a bug that prevents it from being installed via cpan or (perl -MCPAN -e shell) as root. Get the dependencies right with cpan/CPAN, then either do a force install, or download the tarball from cpan.org and do a normal install from source, making sure to run 'make test' as a non-root user.
In general, to upgrade to the latest greatest version, simply issue the following command as an admin user from the command line:
sudo cpan -i Mail::SpamAssassin |
There may be some configuration and updating to do with your CPAN install, but generally you can follow required modules and things turn out OK .
Network tests (like URIBL) are disabled by default.
$sa_local_tests_only = 1;
to read $sa_local_tests_only = 0;
sudo cpan -i Net::DNS |
Note that this module does hit the network quite a bit for DNS lookups and it is highly recommended that you run a caching nameserver to speed things up and minimize network traffic. To do this, simply turn on DNS in Server Admin.app then point your DNS lookup to 127.0.0.1 in System Preferences -> Network.
3. Test with spamassassin -D < path_to_some_test_message
. This will generate a lot of output which is quite useful in seeing what is working and what is not. For a test message, just paste a spam message (including all headers) into a text file and save it somewhere on the server where spamassassin can read it. In the debug output, check to see that a. DNS is available and b. a spam score is being applied to your test message. If URIBL tests are working and it recognizes a spam URL, there should be a nice table showing which blacklists the URL was found on and how many spam points your message has.
There is a switch in Server Admin -> Mail -> Settings -> Filters to update the virus and junkmail DBs but it may or may not work (at least for the spam DB, antivirus seems OK - YMMV). Here's what you can do to fix it:
sudo -s cd /var/clamav rm -rf .spamassassin ln -s /var/amavis/.spamassassin .spamassassin exit |
/usr/bin/cyrus/admin/cyradm
, which is not in the default PATH
. A very effective GUI for the Mac to set shared permissions on the inboxes for junkmail and notjunkmail is SirAdmin. If you run SirAdmin remotely, remember to turn on SSL; otherwise your password will be transmitted in cleartext.
sudo su clamav sa-learn --dump magic exit |
The standard Mac OS X Server install has a number of incorrect settings in /etc/mail/spamassassin/local.cf - run this command to see what's broken then fix it. Note that Mac OS X Server calls spamassassin from amavisd, and so ignores much of what is in local.cf - the config settings are found in amavisd.conf.
spamassassin --lint |
Here's some typical output:
spamassassin --lint [473] warn: config: failed to parse line, skipping: auto_learn 1 [473] warn: config: failed to parse line, skipping: safe_reporting 0 [473] warn: config: failed to parse line, skipping: use_terse_report 0 [473] warn: config: failed to parse line, skipping: subject_tag *** Warning: Junk Mail *** [473] warn: config: failed to parse line, skipping: rewrite_subject 0 [473] warn: config: failed to parse, now a plugin, skipping: ok_languages en fr de ja [473] warn: lint: 5 issues detected, please rerun with debug enabled for more information |
In local.cf,
loadplugin Mail::SpamAssassin::Plugin::TextCat
. ok_languages is now a User setting - I haven't implemented this, so I'm not sure if the plugin is even installed or how best to configure it. YMMV.
The Pyzor package is not installed by default on Mac OS X Server, you'll have to install it manually.
python setup.py build python setup.py install |
Pyzor depends on py-gdbm which is most easily installed via DarwinPorts
sudo port install py-gdbm
to install the py-gdbm packagepython -c 'import gdbm' && echo 'gdbm found'
spamassassin -D < path_to_spam_message
and see what Pyzor messages come up - you should be good to go.
Not free for non-personal use. The Razor2 package is not installed by default on Mac OS X Server, you'll have to find it and install it manually. On the TODO list...
The cf files are stored in /usr/local/share/spamassassin/
. You can create new files or drop in cf files that others have created like here. Note that the numbers at the beginning of the cf file names determines the order in which the filters are processed.