Your company here — click to reach over 10,000 unique daily visitors

spamass-milter - Man Page

sendmail milter for passing emails through SpamAssassin


spamass-milter-p socket [-b|-B spamaddress] [-C -rejectcode] [-d debugflags] [-D host] [-e defaultdomain] [-f] [-g group] [-i networks] [-m] [-M] [-P pidfile] [-Q nn] [-r nn] [-r -rejectmsg] [-u defaultuser] [-x] [-S -/path/to/sendmail] [-- spamc flags ...]


The spamass-milter utility is a sendmail milter that checks and modifies incoming email messages with SpamAssassin.

The following options are available:

-p socket

Specifies the pathname of a socket to create for communication with sendmail. If it is removed, sendmail will not be able to access the milter. This may cause messages to bounce, queue, or be passed through unmiltered, depending on the parameters in sendmail's .cf file.

-b spamaddress

Redirects tagged spam to the specified email address. All envelope recipients are removed, and inserted into the message as ‘X-Spam-Orig-To:’ headers. It does not apply to message that are quarantined with -Q.

-B spamaddress

Same as -b, except the original recipients are retained. Only one of -b and -B may be used.

-C rejectcode

Mail that is rejected is rejected by default with a 5.7.1 code. This option allows that to be overridden. See also, -R -S option.

-d debugflags

Enables logging. debugflags is a comma-separated list of tokens:


Entry and exit of internal functions.


Other non-verbose logging.


Lookups of the ignored netblocks list.


Low-level I/O to the child spamc process.


Recipient processing.


High-level I/O to the child spamc process.


Calls to field lookup and string comparison functions.


Calls to the update_or_insert function.


(historical) Same as func,misc.


(historical) Same as func,misc,poll.


(historical) Same as func,misc,poll,str,uori.

-D host

Connects to a remote spamd server on host, instead of using one on localhost. This option is deprecated; use -- -d host instead.

-e defaultdomain

Pass the full user@domain address to spamc. The default is to pass only the username part on the assumption that all users are local. This flag is useful if you are using an SQL (or other username) backend with spamassassin and have listed the full address there. If the recipient name has no domain part (if the recipient is on the local machine for example), defaultdomain is added. Requires the -u flag.


Causes spamass-milter to fork into the background.

-g group

Makes the socket for communication with the MTA group-writable (mode 0750) and sets the socket's group to group. This option is intended for use with MTA's like Postfix that do not run as root, and is incompatible with Sendmail usage.

-i networks

Ignores messages if the originating IP is in the network(s) listed. The message will be passed through without calling SpamAssassin at all. networks is a comma-separated list, where each element can be either an IP address (nnn.nnn.nnn.nnn), a CIDR network (nnn.nnn.nnn.nnn/nn), or a network/netmask pair (nnn.nnn.nnn.nnn/nnn.nnn.nnn.nnn). Multiple -i flags will append to the list. For example, if you list all your internal networks, no outgoing emails will be filtered.


Disables modification of the ‘Subject:’ and ‘Content-Type:’ headers and message body. This is useful when SpamAssassin is configured with ‘defang_mime 0’ and ‘report_header 1’, or when SA is simply used to add headers for postprocessing later. Updating the body through the milter interface can be slow for large messages.


Like -m, but also disables creation of any SpamAssassin ‘X-Spam-*’ headers as well. Both tagged and untagged mail gets passed through unchanged. To be useful, this option should be used with the -r, -Q, -b, or -B flags. If -b is used, the ‘X-Spam-Orig-To:’ headers will still be added.

-P pidfile

Create the file pidfile, containing the processid of the milter.

-Q nn

Quarantine scanned email in sendmail's quarantine queue, if it greater than or equal to nn. If -1, quarantine scanned email if SpamAssassin tags it as spam (useful if you are also using the -u flag, and users have changed their required_hits value).

This can be used with -r, but reject takes precedence, so the value given here should have a lower value.

-r nn

Reject scanned email if it greater than or equal to nn. If -1, reject scanned email if SpamAssassin tags it as spam (useful if you are also using the -u flag, and users have changed their required_hits value).

For example, if you usually use procmail to redirect tagged email into a separate folder just in case of false positives, you can use -r 15 and reject flagrant spam outright while still receiving low-scoring messages.

-R rejecttext

Mail that is rejected is rejected with the message "Blocked by SpamAssassin". This option allows the user to call with a different message, instead. See also, the -C option

-S /path/to/sendmail

This option is used in conjunction with the -x option to specify a path to sendmail if the default compiled in choice is not satisfactory.

-u defaultuser

Pass the username part of the first recipient to spamc with the -u flag. This allows user preferences files to be used. If the message is addressed to multiple recipients, the username defaultuser is passed instead.

Note that spamass-milter does not know whether an email is incoming or outgoing, so a message from ⟨user1@localdomain.com⟩ to ⟨user2@yahoo.com⟩ will make spamass-milter pass -u user2 to spamc.


Pass the recipient address through sendmail -bv, which will perform virtusertable and alias expansion. The resulting username is then passed to spamc. Requires the -u flag. The spamass-milter configuration process does its best to find sendmail, but it is possible to override this compiled-in setting via the

-- spamc flags ...

Pass all remaining options to spamc. This allows you to connect to a remote spamd with -d or -p.



client interface to SpamAssassin

See Also

spamassassin(1), spamd(1)


Georg C. F. Greve ⟨greve@gnu.org⟩
Dan Nelson ⟨dnelson@allantgroup.com⟩
Todd Kover ⟨kovert@omniscient.com⟩


July 25, 2001