EWL

A GPL/freeware email whitelisting program

July 2004

Ewl is my own email whitelisting tool for fighting spam.  It is intended to run under procmail, but could run under any tool that can take smart actions (e.g. "reply") based on header tags.  

Features:

  • Very fast -- minimal footprint C++ code and based on hash code lookups.
  • Secure -- it requires no root privileges for any part of the process.
  • Easy to install -- it's simply a single-task user process, no system directory installs, no daemons, no funny symlinks, no perl, python, etc. library dependences. 
  • Not client specific -- it works as a server side (e.g. procmail) filter and thus will apply for any POP client.
  • Ready for real use -- it has been tuned with some extra features to handle real-world problems like businesses that will never register, whitelist ringing, and many others.
  • Usually more accurate than filter-based approaches with no need for updating as spammers work around filters.
  • Registration process is less painful that other commercial systems.

In the simplest mode, it parses an email on stdin and decides if the From: email address is in the whitelist. If it isn't, a "please register" reply will be generated. When that is returned, and a registration string in the Subject: line seen, the email address will be added to the whitelist.

For a regular lookup, the output is the original email with a header tag (intended for procmail) added. The tag indicates what to do (keep, drop, reply).

Sufficient command-line options for maintenance are included.  A readme.txt file explaining all options is included.

Shortcomings:

  • It is a whitelist.  People initially sending you email (that you didn't first send email to) must register.
  • It prefers running in procmail and near the server.  It's not suitable for a client-only Windows environment.
  • Automatically registering addresses in outgoing email requires the alwaysbcc feature of procmail 2.1 and and an extra email account.

Improvements and suggestions are welcome.

Download source

If you get some use out of  EWL, a $5 suggested donation will help motivate improvements (or contribute your own code improvements).