Don’t Judge Mail

Don’t Judge Mail (DJM for short) is a daemon which implements Postfix Policy Delegation Protocol. It implements TCP server which communicates with Postfix mail server.

All decision making is delegated to the policy plugins, which implement desired functionality such as greylisting, quota/rate limiting.

DJM is licensed under the terms of GNU GPL v3 or later license, see LICENSE for license text.


  • Fast, event based server (Gevent) which can handle large number of clients.
  • All policy checking functionality implemented in various plugins.
  • Integrated cron/task scheduler, for automatic database maintenance.


For DJM to be useful, you must run Postfix mail server, version 2.2 or later.

DJM also requires Python 2.6 or later 2.x version. As soon as Gevent supports Python 3, we will support it too (though only Python 3.2 or later)

The following additional Python libraries are required:

DJM also requires a database where it will store runtime data. Currently we support PostgreSQL database, support for other databases might be available in the future.

We also recommend running connection pooling software for your database. e.g. PgBouncer for PostgreSQL.

You should install Python requirements using your system package manager or you could configure Python virtualenv for DJM with help of .bootstrap/ file.

For detailed installation and configuration instructions see “Installation” chapter in the docs.


You can clone source code repository from Bitbucket project page, or GitHub mirror.

Tarball archives and Linux distro packages might be available in the download area on the Bitbucket.