Spam Prevention

From Qmailwiki
Jump to: navigation, search

General Anti-Spam How-Tos

Using RBLs & DNS

  • Jon Rust wrote qrblcheck, which reads a message on stdin, grabs the IP address from the Received lines and checks it against five different DNS-based spamlists.
  • Luca Morettoni wrote qmail-rblchk, which checks the IP address in the Received: line of an email message on stdin against named DNSBLs.
  • Inter7 wrote a qmail-smtp rblsmtpd patch which uses code from rblsmtpd in the qmail-smtpd binary to not check authenticated users against rbl lists stored in /var/qmail/control/dnsbllist.
  • Nagy Balazs wrote a patch to ensure that the domain name on the envelope sender is a valid DNS name. This is not terribly effective against spammers, but I list it here because some people want it.
  • Jeremy Kister has an update to reject address with no domain diff.
  • spamdyke provides RBL and DNS checking for qmail. See the longer description under "Other Tools" below.

Regex Extenders

  • qregex provides full regexp matching on envelope addresses.
  • Andrew St. Jean has added many new features to qregex.
  • Qmail Remove Qmail-Remove will remove messages containing a particular string from your Qmail queue.



  • Martin Dempsey, who started out making an early Exim implementation of greylisting, has also *made one that works with Qmail.
  • Bill Shupp has a Patch File on his site that can be applied to netqmail-1.05 or his toaster.
  • Jon Atkins wrote qgreylist - simple greylisting for qmail.
  • Brent Meshier has a How-To & patch file for Greylisting on Plesk.
  • greylisting-spp is another qmail patch which provides plug-in support for it's SMTP daemon
  • spamdyke provides graylisting for qmail. See the longer description under "Other Tools" below.

General Patch Files

  • Jean-Eudes ONFRAY wrote a rhsbl patch for tcpserver. This lets you block or whitelist email based on the reverse-DNS hostname rather than IP.

Using Spamassasin

  • James Grinter has instructions on using SpamAssassin. It's a script that runs from a .qmail file.

Scanners and Tie In Programs

  • Noel Mistula wrote checkhab, which checks for HTML, attachments, and binaries in email, and blocks them.

Challenge Response Systems

  • Jason R. Mastaler has improved TMDA, an anti-spam system.
  • Gerrit Pape wrote qconfirm, a delivery confirmation process for a mail address.

Fake Email addresses

  • Chris Johnson wrote qdated 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.
  • Jeffrey Clement wrote a time-limited email-address program called datedmail.

Filters and Sorters

  • q-sorter sorts your email into separate inboxes.


  • Christophe Saout wrote a SPF checker that runs inside qmail-smtpd and is written using the native dns and string functions that come with qmail.

Other Tools

  • Chris Kennedy has written the BlackHole spam/virus filter.
  • Net::QMTP - This perl module implements an object oriented interface to a Quick Mail Transfer Protocol (QMTP) client which enables a perl program to send email by QMTP.
  • Jonathan A. Zdziarski has started the project DSPAM, a scalable, open-source statistical anti-spam filter. DSPAM frequently has an accuracy around 99.95% (1 error in 2000) and the largest implementation involves 350,000 users.
  • Jay Soffian has modifies qmail-smtpd to fork/exec $RCPTCHECK at the RCPT TO:. $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.
  • Ask Bjørn Hansen wrote qpsmtpd, a smtp server with filtering tools. It's written in perl.
  • Erwin Hoffman's SPAMCONTROL combines many spam control features. Includes SMTP Auth with CRAM-MD5 support.
  • EnderUNIX Team wrote spamGuard, which scans your log files for "too much" email from a particular user, and adds them to badmailfrom.
  • Dale Woolridge, James Law, and Moto Kawasaki's spam throttle patch provides a method to rate limit/stutter spam.
  • Sam Clippinger wrote a drop-in filter for qmail named spamdyke that checks DNS RBLs, checks rDNS names, checks if rDNS names resolve, checks the sender's domain name for an MX record, provides graylisting (configurable for each domain), provides IP and rDNS blacklisting, provides IP and rDNS whitelisting, limits the number of recipients per message, prevents relaying and provides configurable connection timeouts. It provides much better logging than qmail does on its own, including full logging of all SMTP traffic if desired. It supports SMTP AUTH and TLS -- it even provides SMTP AUTH and TLS for unpatched qmail servers! Installing spamdyke does not require patching or recompiling qmail.
Personal tools