- Chris Hardie has updated his qmail anti-spam howto
- Dan's rblsmtpd blocks spam using the RBL and other DNS-based lists. Because of the size of the RSS zone, they have removed the necessary TXT records that rblsmtpd relies on.
- Alan Curry has a patch to rblsmtpd to make it work with A records.
- David Jonas has a patch to rblsmtpd to let you ignore certain A record responses from the bl lookup.
- Russell Nelson has a pair of programs to help [http://www.qmail.org/spam-filter keep spam out of your mailbox.
- Jason R. Mastaler has improved TMDA, an anti-spam system.
- Lionel Widdifield</a> wrote an anti-spam patch. Someone made some
improvements to Lionel's patch, which Lindsay Haisley has <a href="http://www.fmp.com/downloads/qmail-antispam4.tar.gz">ported to qmail 1.03</a>.
- <a name="200403290"><a
href="http://www.unixpimps.org/software/qregex/">qregex</a> provides full regexp matching on envelope addresses.</a>With REs (Regular Expresions) it becomes quite easy to filter out email addresses that contain invalid characters or simply aren't a real address. Andrew St. Jean has <a href="http://www.arda.homeunix.net/store/qmail/">added</a> case insensitive pattern matching and logging when a match is found.
href="http://email@example.com">Chris Johnson</a> has a patch to implement <a href="http://www.palomine.net/qmail/tarpit.html">tarpitting</a> in qmail-smtpd. If you don't know what tarpitting is, it's the practice of inserting a small sleep in an SMTP session for each RCPT TO after some set number of RCPT TOs. The idea is to thwart spammers who would hand your SMTP server a single message with a long list of RCPT TOs.
- Nagy Balazs wrote a patch to
ensure that the domain name on the <a href="http://js.hu/package/qmail/index.html">envelope sender is a valid DNS name</a></a>. This is not terribly effective against spammers, but I list it here because some people want it.
- Jon Rust wrote <a
href="http://jon.rusts.net/qrblcheck.c">qrblcheck</a></a>, which reads a message on stdin, grabs the IP address from the Received lines and checks it against five different DNS-based spamlists.
- Jay Soffian has a qmail-queue
replacement to <a href="qqrbl">filter against DNS spamlists.</a></a>. It uses Bruce Guenter's <a href="#qmailqueue">QMAILQUEUE</a> patch. Matching email is not rejected, but instead an X-RBL: header is added, for filtering at the delivery layer.
- O'Shaughnessy Evans has a set of
shell scripts that comprise a spam-filtering system called "<a href="http://isle.wumpus.org/cgi-bin/pikie?SpamRule">spamrule</a>".</a>
- Ask Bjørn Hansen wrote <a
href="http://develooper.com/code/qpsmtpd/">qpsmtpd</a>, a smtp server with filtering tools</a>. It's written in perl.
- Erwin Hoffman's <a
href="http://www.fehcom.de/qmail/spamcontrol.html">SPAMCONTROL</a> combines many spam control features</a>. Includes SMTP Auth with CRAM-MD5 support.
- EnderUNIX Team wrote <a
href="http://www.enderunix.org/spamguard">spamGuard</a></a>, which scans your log files for "too much" email from a particular user, and adds them to badmailfrom.
- Russell Nelson has a patch to <a
href="qmail-smtpd-relay-reject">reject relay probes</a> generated by so-called anti-spammers.</a> These relay probes have '!', '%' and '@' in the local (username) part of the address.
- Dale Woolridge, James Law, and
Moto Kawasaki's <a href="http://spamthrottle.qmail.ca/">spam throttle</a></a> patch provides a method to rate limit/stutter spam (message throughput) via a highly parameterized control interface. As of release 2.01, tcpserver is no longer a strict requirement.
- James Grinter has instructions on
<a href="http://www.gbnet.net/~jrg/qmail/ifspamh">using SpamAssassin</a></a>. It's a script that runs from a .qmail file.
- Chris Kennedy has written the
<a href="http://sourceforge.net/projects/blackholespam/">BlackHole</a> spam/virus filter</a>.
- Noel Mistula wrote <a
href="http://ngm.id.au/checkhab">checkhab</a></a>, which checks for HTML, attachments, and binaries in email, and blocks them.
- Gerrit Pape wrote <a
href="http://smarden.org/qconfirm/">qconfirm</a></a>, a delivery confirmation process for a mail address.
- Chris Johnson
wrote <a href="http://www.palomine.net/qdated/">qdated</a></a> to create and verify timestamped e-mail addresses. These addresses expire after a user-configurable period of time; any mail sent to an expired address will bounce.
- Roger Merchberger has some
techniques to deal with <a href="http://www.30below.com/~zmerch/qmail/">double-bouncing email</a></a>.
href="http://q-sorter.sourceforge.net">q-sorter</a> sorts your email into separate inboxes.</a>
href="http://search.cpan.org/author/JRAFTERY/">Net::QMTP</a> - This perl module implements an object oriented interface to a Quick Mail Transfer Protocol (QMTP) client</a> which enables a perl program to send email by QMTP.
- Georg Lehner tells how to
configure <a href="http://www.magma.com.ni/~jorge/spamassassin.html">Qmail with Spamassassin</a></a>.
- Jeffrey Clement wrote a
time-limited email-address program called <a href="http://jclement.ca/software/datedmail.py/">datedmail</a></a>.
- Luca Morettoni wrote <a
href="http://morettoni.net/qmail-rblchk.en.html">qmail-rblchk</a></a>, which checks the IP address in the Received: line of an email message on stdin against named DNSBLs.
- Jean-Eudes ONFRAY wrote a <a
href="rhsbl.patch">rhsbl patch</a> for tcpserver</a>. This lets you block or whitelist email based on the reverse-DNS hostname rather than IP.
- Philip Gladstone wrote a
- Christophe Saout wrote a <a
href="http://www.saout.de/misc/spf/">SPF checker</a></a> that runs inside qmail-smtpd and is written using the native dns and string functions that come with qmail.
- Markus Stumpf has a patch for
qmail-smtpd that <a href="http://www.lamer.de/maex/creative/software/qmail/105-sober-g/">rejects W32/Sober-G</a> at the SMTP level.</a>
- Jay Soffian has modifies
qmail-smtpd to <a href="http://www.soffian.org/downloads/qmail/qmail-smtpd-doc.html">fork/exec $RCPTCHECK</a> at the RCPT TO:</a>. $RCPTCHECK is run in the same environment as qmail-smtpd. Additionally $SENDER is set to the envelope from and $RECIPIENT is set to the envelope recipient (for the current rcpt to:). Based on the return code (exit value) of $RCPTCHECK, the rcpt to: address will either be accepted or rejected.