Mailing Lists



Links to Implementations and Information

To contact me about this project, you may send email to me at eharris@puremagic.com. But, if the contact concerns using software implementing the idea, or ways of enhancing the method, the mailing lists might be more appropriate.

If you are aware of any implementations not listed here, please contact me at the above email address with a url and a short description, so it can be included here.

Whitepaper Translations:

French - http://www.ba-cst.com/technique/Greylisting/
French - http://sebastien.nameche.fr/spam/greylisting/french.html


My (Evan Harris') example implementation (also used for the inital testing) is called relaydelay, and is available from the Downloads link.

Development versions of relaydelay are also available from svn at http://projects.puremagic.com/web-svn/wsvn/greylisting/.

Morris Maynard has written some very helpful installation instructions for the relaydelay sendmail milter. His pages are at http://www.maynidea.com/sendmail/relaydelay.html.

Ian Ballantyne has written a very informative installation guide for the relaydelay sendmail milter. His docs are at http://midori.shacknet.nu/OpenSourceProjects/Setting_up_Greylisting_with_Sendmail_v1.2.html.

Chris Paul has notes about using the example implementation under OpenBSD 3.4 at http://www.sfobug.org/meeting_notes/chris_paul/greylist_openbsd.html

Jose Marcio Martins da Cruz has written a native sendmail milter (in C) that uses a modified version of Greylisting that is designed to reduce the required resources to scale for higher mail volumes. More info at http://j-chkmail.ensmp.fr/.

Emmanuel Dreyfus has written an implementation of greylisting in standalone C/sendmail milter that does not require perl or an external database. His project is at http://hcpnet.free.fr/milter-greylist/.

Anthony Howe has an alternative Sendmail C based milter that supports the Sendmail access database (Berkeley DB) for white-listing. Further details at http://www.snert.com/Software/milter-gris/

Also from Anthony Howe is a Sendmail C based call-back milter that uses Greylisting as a secondary technique for inconclusive call-backs. Details at http://www.snert.com/Software/milter-sender/

S. Moonesamy has written a milter called scam-grey which uses passive OS fingerprinting to detect windows based hosts, and if so, to subject the sending hosts to greylisting. The scam-grey milter webpage is at http://www.elandsys.com/scam/

smf-grey is a C-based Sendmail milter that uses the QDBM database for whitelisting and greylisting. More info at http://smfs.sourceforge.net/smf-grey.html


Martin Dempsey has developed a Greylisting implementation for Exim 4.x. It is available at http://www.digitaleveryware.com/projects/greylisting/

William Blunn has developed an implementation in C++ using a MySQL database backend. It was developed for use with Exim 4 using an ACL rule rather than local_scan() and therefore works with the vanilla build of Exim 4 and does not require any special patches or extensions. But since it is implemented as a freestanding executable, it should be able to be used with any MTA that supports calling out to an external program. The implementation also includes outgoing message processing. See: http://sourceforge.net/projects/bagley/

Roman Festchook is also working on an implementation for Exim. It is at http://llab.zhitomir.net/?greylist

Tor Slettnes has developed a python implementation that is self contained and does not depend on an external database. It works with any version of Exim and does not require any special patches or extensions to Exim. It is invoked via a Exim ACL rule rather than local_scan() or other interface. There is not yet a project page, but it is a package in Debian. See http://packages.debian.org/unstable/mail/greylistd

Marc Merlin has a new implementation using Spamassassin with Exim. There's documentation for it at http://marc.merlins.org/linux/exim/files/sa-exim-cvs/README.greylisting. The base link is here and a diff is here.

Alun Jones has created a perl filter for Exim that is in use at the University of Wales. His page at http://users.aber.ac.uk/auj/spam/ has links to source and a nice Powerpoint presentation that has a graph of the method's effectiveness.

Tollef Fog Heen has an in-Exim implementation using PostgresSQL. Information on it is at http://raw.no/personal/blog/tech/Debian/2004-03-14-15-55_greylisting

Johannes Berg has an implementation for Exim 4 at http://johannes.sipsolutions.net/Projects/exim-greylist

An unidentified person has another implementation for Exim and Mysql, based on Tollef's implementation. Info is at http://theinternetco.net/projects/exim/greylist


Martin Dempsey has developed a Greylisting implementation for Exim 4.x that should also work with Qmail. It is available at http://www.digitaleveryware.com/projects/greylisting/.

Peter Conrad has an alpha-level implementation available at http://www.unix-ag.uni-kl.de/~conrad/greylisting/README.html

Jon Atkins has a simplified perl implementation at http://www.jonatkins.com/qgreylist/.

Rob Bos has adapted Jon Akins qgreylist to use a mysql backend. More info at http://novylen.net/~rbos/qgreylist/.

Sirko Zidlewitz has enhanced a version of Jon Atkins implementation. It is available at http://www.datenklause.de/en/software/qgreylistrbl.html.

Zaid Amireh has developed a C-based implementation of a sender-IP only version of Greylisting that is targeted at higher volume servers. Information on it is available at http://oss.albawaba.com/cqgreylist.html.

Guenther Mair has developed a patch for Qmail called qmail-greylist-pgsql that implements Greylisting using a PostgreSQL database. More info at http://qgreylist-pgsql.sourceforge.net/.

Thomas Mangin has made a new implementation for Qmail. More info at http://thomas.mangin.me.uk/software/qmail-greylist.html.


Gavin Carr has implemented a greylisting plugin for Qpsmtpd (a perl based replacement for qmail-smtpd). The plugin is available at http://www.openfusion.com.au/labs/dist/denysoft_greylist.


Wietse Venema (author of Postfix) has made modifications to Postfix to support a form of Greylisting. Information on it is available at http://www.postfix.org/SMTPD_POLICY_README.html#greylist.

David Schweikert has written a perl based enhancement for the Postfix policy server. Information is available from http://isg.ee.ethz.ch/tools/postgrey/

Salim Gasmi has written a C based implementation of Greylisting for Postfix. It is available from http://www.gasmi.net/gld.html

Michael Moritz has another Postfix implementation, written in C/C++ and using DBI/Mysql. It is available from http://mimo.gn.apc.org/gps/

Sean Reifschneider has released tumgreyspf, an external policy checker for Postfix, implementing both greylisting checks and spf checks, and using the local filesystem for the database rather than having an external dependency. More info is available at http://www.tummy.com/Community/software/tumgreyspf/

Kyle Lanclos maintains Grappy, a high performance policy server for Postfix written in Python and using either PostgreSQL or MySQL as a storage backend. It is available from http://grappy.lanclos.org/


Jason Frisvold has written a plugin for Squirrelmail. It is available from http://www.godshell.com/toaster/

Microsoft Exchange/IIS:

Chris has written Greylist, a free plugin for Microsoft Exchange 2003 (should work on 2000 as well). It also has limited support for IIS SMTP. More info at http://www.grynx.com/projects/greylist/

Mail Proxies:

Graham Toal is working on a man-in-the-middle mail relay daemon implementing Greylisting (among other things). The code is at http://www.gtoal.com/spam/smtpfilter.c. A nice html version is here.

David Parsons has written a simple mailserver and client using greylisting. His page is at http://www.pell.portland.or.us/~orc/Code/postoffice/.

David Given has written a mail proxy called spey. It is hosted at Sourceforge. Here is the spey homepage.

Anti-SPAM SMTP Proxy Server (ASSP) is a very featureful proxy project hosted at Sourceforge. Here is the ASSP Sourceforge Page and also a link to the Developers page.


Vernon Schryver has added a form of Greylisting to the Distributed Checksum Clearinghouse (DCC). More info is at http://www.rhyolite.com/anti-spam/dcc/greylist.html

Jonas Eckerman has modified MIMEDefang to include a form of Greylisting. More info at http://whatever.frukt.org/mimedefang-filter.shtml

OpenBSD 3.5 appears to support greylisting "out of the box" with the use of spamd. Here is the online manual page for spamd.

Davide Libenzi has a C-based implementation using GDBM called GLST that works with XMail or with other MTA's. More info is available at http://www.xmailserver.org/glst-mod.html

Articles on Greylisting

Greylisting has a Wikipedia entry.

David Schweikert has an article on Greylisting that was published in the November 2004 issue of the swiss magazine InfoWeek.ch. A PDF of the article is available here. (Article is in German)

Articles and Howto's including Greylisting

James has written a HOWTO on setting spamd up under OpenBSD 3.5 at http://www.elwood.net/greyspamd.html

Tor Slettnes has created a paper titled "Spam Filtering for Mail Exchangers" which covers several methods of spam blocking in addition to Greylisting. The page is at http://slett.net/spam-filtering-for-mx/

Greylisting Papers and Research

A group from HP Labs in Bristol produced and presented a paper at Usenix 2004 that takes some of the ideas from Greylisting and turns it into a mail prioritization scheme. Although some of the statistics in the paper regarding false positives of Greylisting are significantly inflated due to neglecting to exempt the data during the training phase from the analysis, it still presents some interesting information. The paper is available here: http://www.hpl.hp.com/techreports/2004/HPL-2004-5R1.html

Links to commercial products

Commercial products incorporating varying forms of the greylisting method are becoming pretty widespread. Here are links to products known to implement some form of Greylisting (please let me know of any corrections or additions).

Please keep in mind that even though commercial products may use some form of Greylisting, there is no requirement for them to contribute anything back to this project. However, some have been kind enough to do so. Those that are known to have made a significant donation to this project have been moved to the top of the list.

Contributing Commercial Products

Mirapoint offers a range of ready-to-go email appliances that offer many advanced filtering techniques. For technical or sales information, please visit their website at http://www.mirapoint.com/

Spam-Zapper offers software incorporating the greylisting method in several products aimed at different market segments. Here is their Features List

Other Commercial Products

CanIt Mail Server Software Release Info

Isode Press Release

AutumnTECH E-Mail Appliances

Aloaha E-Mail Software

Tummy.com has a mail server integration product called vPostMaster that is free for non-commercial use. Here is the vPostMaster product page

DerbyTech sells a hardware based product called CipaFilter that includes greylisting as an important component on their Features Page

Vamsoft ORF is a commercial server-side spam filter for the Windows 2000/2003 IIS SMTP Service and Microsoft Exchange 2000/2003.

no.Spam.java is a commercial java based smtp proxy filter with anti-spam capabilities.

trimMail sells the trimMail Inbox email security appliance, which incorporates a form of Greylisting.

MDaemon is a mail server product that incorporates several anti-spam techniques, including Greylisting. Here is a list of features.

XWall is a firewall/spamfilter product for Microsoft Exchange.

Links to other spam blocking/filtering projects

The DSPAM Project