Integrated into several varieties of MTA

Amavisd-new is a high-performance interface between mailer (message transfer agent - MTA) and one or more content checkers: virus scanners, and/or SpamAssassin. It is written entirely in Perl, assuring high reliability, portability and maintainability. It talks to MTA via (E)SMTP or LMTP, or by using helper programs. Best with Postfix, works with Exim, sendmail/milter or with any MTA as a SMTP relay.

MailScanner now includes support for SpamAssassin. This is "a virus scanner for e-mail designed for use on e-mail gateways. It can also detect a large proportion of unsolicited commercial e-mail (spam) passing through it." MailScanner does an excellent job with file names and types, and can be set to quarantine encrypted .ZIP files and apply normal filename rules and virus scanning inside unencrypted ones.

Another option is to use a filtering SMTP proxy such as spampd. It is typically used to filter the mail between an external-facing MTA instance/relay, and an "internal" MTA instance.

Integrated into Sendmail

With Sendmail, Spamassassin can be called for every user by editing /etc/procmailrc . More details at

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

MIMEDefang, a sendmail milter written by Roaring Penguin Software, filters all e-mail messages sent via SMTP through a sendmail installation, blocking common mail viruses, and now – with the help of SpamAssassin – spam. "You can use SpamAssassin to test for spam, and then all of the MIMEDefang goodies to reject, manipulate or otherwise mangle the message." Integrated with the MTA to the level of returning 5xx error codes during the SMTP session, so viruses or detected spam can be rejected at the delivery, which notifies the sender, that the mail was rejected, without generating an additional email message.

spamass-milt is a sendmail milter by Georg C. F. Greve, which allows sendmail users to filter spam at the heart of the sendmail message pipeline. It also allows SpamAssassin to be used for UUCP sites. If you plan to use this, be sure to read Kevin McGrail's walkthrough at Peregrine Hardware.

milter-spamd is a simple BSD-licensed sendmail milter by Daniel Hartmeier.

BSM Development have released MailCorral and SpamCorral for use on UNIX and Linux systems, mail/spam filtering software using the sendmail milter interface.

Yet Another Sendmail-SpamAssassin Interface Milter, milter-spamc by Snert

Integrated into Postfix

  • For Postfix v2.6 or greater, any of the "milter" software listed above can be used.
  • Another way to integrate postfix and spamassassin is to use spamd. See IntegratedSpamdInPostfix. This method supports after-queue filtering only and is not quite as robust or nearly as efficient.
  • IntegratePostfixViaSpampd is a more robust and efficient solution, but also a more complex one. It supports before-queue or after-queue filtering.
  • IntegratedInPostfixWithAmavis is more complicated still but provides a way to plug in ClamAV virus scanning as well. It supports before-queue or after-queue filtering.

Integrated into Qmail

Use SpamAssassin to reject spam at SMTP time with Simscan. Simscan works natively with Netqmail-1.05, or with vanilla qmail-1.03 with the qmailqueue patch.

SpamAssassin can be integrated into qmail system-wide using qmail-scanner, described in IntegratedInQmailWithQmailScanner.

Since qmail allows users to configure their own delivery options via ~/.qmail files, an alternative option, if you have spamd running and only want to scan mail delivered to local users, is to use ifspamh: see IntegratedInQmailWithIfspamh.

Integrated into Exim

SpamAssassin can be integrated into Exim in three ways:

  1. As of Exim 4.50, by compiling Exim using WITH_CONTENT_SCAN=yes (see details, more). As an Exim 4.4x Exiscan-extended ACL condition stack, Exim can reject spam after reading the body, but before Exim acknowledges acceptance of the email. 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 or exim4 -bV; look for the phrase Contains exiscan-acl patch.
  2. As an Exim 4.x loadable module or local_scan.c replacement. SA-Exim also allows SpamAssassin to reject spam before its accepted by your MTA. More info at On debian this is the default method: install the sa-exim package and edit /etc/exim4/sa-exim.conf to enable it.
  3. As an Exim transport.

Integrated into Courier-MTA

If you use the Courier MTA, you can use maildrop, described in IntegratedInCourierUsingMaildrop.

There is also a rudimentary HOWTO at the Gentoo forums for integrating SpamAssassin and f-prot with Courier-MTA.

There is another HOWTO at to feed SpamAssassin's bayes filter via Courier-IMAP.

Integrated into CommuniGate Pro

Integrated into XMail (Unix)

SpamAssassin Filter ( is an XMail filter send incoming email messages to SpamAssassin for spam filtering. calls spamc, the SpamAssassin client (spamc calls spamd) and passes the output of spamc back to XMail for delivery. Neither nor spamc will delete emails that are flagged as spam.

Please find the filter source code and documentation at Drake Consulting

Integrated into Exchange (Windows)



Integrated into Novell E-Mail Products

Novell sells two E-Mail systems: GroupWise (full-featured collaboration) and NetMail (ISP-quality standards-based E-Mail only).

GroupWise: The GroupWise MTA-equivalent (GroupWise Internet Agent, or GWIA) implements its own RBLs and other anti-SPAM measures. Guinevere, written by the maintainer of the SA Win32 HOWTO, provides integration with SA.

NetMail: NetMail is closer to what most *NIX admins are used to. There is an open-source project at SourceForge for integrating 3rd party software with NetMail. See Novell NetMail Agent

Integrated into Mail Avenger

Mail Avenger is an SMTP Server that allows individual users to run tests on mail messages during SMTP transactions, so that unwanted mail can be rejected before the mail server accepts responsibility for the message. One advantage of this is that it allows you to bounce messages marked as spam by spamassassin. (You can, of course, bounce spam after spooling it, but then you risk sending bounce messages to innocent third parties when spammers forge the sender address, as often happens.)

Individual users can bounce spam by putting the following lines in their $HOME/.avenger/rcpt files:

bodytest edinplace -x 111 spamassassin -e 100

To run spamassassin by default for all users, you might place the following code in the file /etc/avenger/default:

test -n "$MAIL_ERROR" && exit 0
bodytest edinplace -x 111 spamassassin -e 100

The first line just rejects the mail immediately if Mail Avenger will end up rejecting it anyway, to save the overhead of firing up spamassassin.

Note that another theoretical advantage of Mail Avenger is that you ought to be able to feed the netpath and SYN fingerprint information it collects into the spamassassin's bayesian filter, but there is not currently any special support for tokenizing the X-Avenger header.

Integrated into Mailsweeper and Mailmarshal (Windows)

A Guide there shows howto intergrated SA (from the as a plugin for Mailsweeper and this can also be used by Mailmarshal

Notes for MTA-Integration Developers

See MtaIntegrationDevNotes.