Nuclear.Hosting Postfilter - FUP

fup
postfilter
smtp

#1

Hi there,

in this post I would like to describe our new Postfilter system, developed by Nuclear.Hosting.

Postfilter is module-based program for mail filtering purposes. Currently, we have finished FUP (Fair Usage Policy) module.

How Postfilter works

Postfilter is ruby written program. It uses Postfix SMTPD Policy (www.postfix.org/SMTPD_POLICY_README.html). It can be used not only with postfix, but also with any other software. The condition is to communicate in the correct format (key=value).

Postfilter is running as daemon and listening on specific TCP port and IP address (can be defined in configuration). In configuration can be defined which modules are loaded. Module evaluate input from client and return result. Every module should return its own result, but if any from modules returns false (not passed), final result from Postfilter is reject.

Postfilter should also work in cron mode which executing special cron method in every plugin, if defined. Cron can be used for module database cleaning or any other regular jobs. Cron is optional feature of every module.

Modules

Every module is single ruby script, located in specific path. Every module should have its own configuration. Module should be turned on or off in main Postfilter configuration file. If no module is loaded, Postfilter return true (passed) result.

Currently, we have these modules:

  • FUP (Fair Usage Policy) for SMTP servers

FUP Module Description

This module is for preventing spam activity on our outgoing SMTP servers. It apply FUP limits to outgoing emails. There are two limits:

  • Free hosting users: max 60 emails per hour
  • VIP Hosting users: max 300 emails per hour

If client reach the limit, message is not sent and is reject with regular error message to client.


If you are interesting in about more and detail information about Postfilter system or you would like to use it on your own servers, let us know. We are open to share sources with you. In the future, Postfilter sources will be available public in our GIT repository, which we are preparing.