spmfilter 0.4.2

A high-performance mail filtering framework
spmfilter is written in C and attempts to be a general filtering framework for any purposes. Filtering mechanisms are provided by plugins, the API enables spmfilter plugins to access messages as they are being processed by the MTA. This allows them to examine and modify message content and meta-information during the SMTP transaction.

Plugins are loaded at runtime and can be processed in any sequence, the processing chain can also be altered by a single plugin, for example if the plugin has to stop further processing (e.g. the clamav-plugin detected malicious software like a virus and the infected message is actually discarded - so further processing is stopped by the plugin).

Main features:

  • Generic SMTP engine:
  • spmfilter ships with it's own SMTP engine, so you can use spmfilter with any MTA. Data, submitted via SMTP, is available for all plugins.
  • Plugin support:
  • There are no filtering mechanisms in spmfilter, all is done via plugins. Plugins are loaded at runtime and can be processed in any sequence. Any plugin can be added or changed independently of other existing plugins.
  • Plugin tracking:
  • By the use of state files, spmfilter is able to track the current plugin processing status. In short, plugins which have already been executed won't be re-processed in case of an error.
  • Message parsing and creation:
  • API functions for header and message parsing as well as header and message creation.
  • Generic database interface:
  • Transparent connection to multiple database systems with connection pooling, failover and load balancing functions. Spmfilter supports PostgreSQL, MySQL, SQLite, BerkeleyDB and LDAP as database backend.
  • Speed:
  • By the use of C, a higher performance is reached than other filters using scripting languages.
  • Reliability:
  • Coding failures (e.g. core dumps) in a plugin will not stop mail delivery. Faced with such a failure, the MTA will receive a 4xx SMTP error code, so that the mail will be queued for later processing.

last updated on:
May 31st, 2010, 14:11 GMT
license type:
LGPL (GNU Lesser General Public License) 
developed by:
Axel Steiner and Sebastian Jäkel
ROOT \ Communications \ Email Filters
Download Button

In a hurry? Add it to your Download Basket!

user rating 1



Rate it!
What's New in This Release:
  • Fixed a config parse error
  • Added checks for empty SQL/LDAP query strings, to catch lookup exceptions.
  • Added new function to validate email addresses
  • SMTP engine validates now sender and recipient addresses, according to RFC 2822.
read full changelog

Add your review!