Integrated into Sendmail
With Sendmail, Spamassassin can be called for every user by editing /etc/procmailrc . More details at http://www.stearns.org/doc/spamassassin-setup.current.html#sitewide
An alternative is to use the smtp-vilter high-performance content filter using the sendmail milter API which has a backend for Spamassassins spamd. More details at http://www.etc.msys.ch/software/smtp-vilter/
Integrated into Postfix
The easiest way to integrate postfix and spamassassin is to use spamd. First, edit master.cf, find the smtp line and just add "-o content_filter=spamassassin" to the end of the line.
Then, go to the end of the file, and add this:
spamassassin unix - n n - - pipe user=nobody argv=/path/to/spamc -f -e /path/to/postfix/sendmail -oi -f ${sender} ${recipient}
Then, setup spamd to start with the system, and you are ready to go. If you wish to provide spamassassin preferences, change "user=nobody" to a valid system user, and add .spamassassin into their home directory.
Alternatively, a more complex scheme is to integrate it using Amavis, as described in IntegratedInPostfixWithAmavis.
Integrated into Qmail
Can be integrated via qmail-scanner, an add-on to qmail. Info available at http://qmail-scanner.sourceforge.net/
This is actually quite easy. SA is auto-detected when you install qmail-scanner, and uses the spamd/spamc combo if available. Here is my configure line (sans private data):
$ ./configure --spooldir /var/lib/qmailscan --qmaildir /var/qmail --bindir /var/qmail/bin \ --qmail-queue-binary /var/qmail/bin/qmail-queue --admin postmaster@example.com --domain example.com \ --notify none --local-domains example1.com,example3.com,some.other.domain.net --silent-viruses auto \ --lang de_DE --debug 1 --unzip 0 --add-dscr-hdrs 0 --archive 1 --redundant no --log-details \ --fix-mime 1 --scanners "verbose_spamassassin" --install 1
Integrated into Exim
SpamAssassin can be integrated into [http://www.exim.org/ Exim] in three ways:
As an [http://duncanthrax.net/exiscan-acl/ Exiscan]-extended ACL condition stack, Exim can reject spam after reading the body, but before Exim acknowledges acceptance of the email. [http://www.debian.org/ Debian Linux]'s exim4-daemon-heavy comes with the exiscan patch built in. You can discover its presence in your distro's exim binary directly with the command
exim -bV
orexim4 -bV
; look for the phraseContains exiscan-acl patch
.As an Exim 4.x loadable module or local_scan.c replacement. [http://marc.merlins.org/linux/exim/sa.html SA-Exim] also allows SpamAssassin to reject spam before its accepted by your MTA.
As an [http://dman13.dyndns.org/~dman/config_docs/exim-spamassassin/ Exim transport].