OpenBSD spamd for the FreeBSD


spamd is a fake sendmail(8)-like daemon which rejects false mail. It is designed to be very efficient so that it does not slow down the receiving machine.

spamd considers sending hosts to be of three types:

blacklisted hosts are redirected to spamd and tarpitted i.e. they are communicated with very slowly to consume the sender's resources. Mail is rejected with either a 450 or 550 error message. A blacklisted host will not be allowed to talk to a real mail server.

whitelisted hosts do not talk to spamd. Their connections are instead sent to a real mail server, such as sendmail(8).

greylisted hosts are redirected to spamd, but spamd has not yet decided if they are likely spammers. They are given a temporary failure message by spamd when they try to deliver mail.

When spamd is run in default mode, it will greylist connections from new hosts. Depending on its configuration, it may choose to blacklist the host or, if the checks described below are met, eventually whitelist it. When spamd is run in blacklist-only mode, it will consult a pre-defined set of blacklist addresses to decide whether to tarpit the host or not.

When a sending hosts talks to spamd, the reply will be stuttered. That is, the response will be sent back a character at a time, slowly. For blacklisted hosts, the entire dialogue is stuttered. For greylisted hosts, the default is to stutter for the first 10 seconds of dialogue only.

Manual pages

Latest FreeBSD specific spamd manuals:


If you have a previous version of spamd running (3.7 or old 3.9 - 4.x) make ab backup of /var/db/spamd before continue.
DB format changes: < 4.1 = BTREE, >= 4.1 = HASH.
The DB will be converted to HASH if then new spamd starts the first time Also note the new place for the config files is /usr/local/etc/spamd/ Prepare the old db for convert (only used if you have SPAMTRAP addresses) sample to remove the surrounding '< >' SPAMTRAP signs:
# spamdb | grep SPAMTRAP > SPAMTRAP.old
# for i in `cat ./SPAMTRAP.old | awk -F\| '{print $2}'`; do spamdb -Td $i; done; 
# for i in `cat ./SPAMTRAP.old | awk -F\| '{print $2}' | tr -d '<>'`; do spamdb -Ta $i; done; 


Active Porter(s)