mailprocd 1.2

mailprocd is a high-performance mail delivery, classification and filtering daemon written in C.

  Add it to your Download Basket!

 Add it to your Watch List!


Rate it!
send us
an update
BSD License 
2.6/5 16
Wilbern Cobb
ROOT \ Communications \ Email Filters
mailprocd is a high-performance mail delivery, classification and filtering daemon written in C, designed to extend the capabilities of MTAs such as postfix and sendmail. The project was initially developed for use on multiuser mail servers using postfix, but it is suitable to any MTA that can deliver to a SMTP or LMTP server.

Typically, mailprocd will be configured to accept SMTP/LTMP connections and will process mail based on the contents of four databases: rules, uid, gid and lists. The rules database contains per-address delivery instructions. Multiple destinations can be configured per address. Mail can be delivered to mailboxes, maildirs, piped to arbitrary commands or forwarded to other addresses based on conditionals. The uid and gid databases specify the default UID/GID associated with every address (individual delivery instructions can override this setting). The optional lists database specifies configured mailing lists.

Spam filtering

mailprocd embeds the Perl interpreter (like mod_perl does) in order to use the SpamAssassin filter in the most efficient manner possible.

A major problem with SpamAssassin on multiuser systems is the fact that custom user configurations and important features such as Autowhitelisting and Bayes filtering require that SpamAssassin execute under the user's privileges (which is desirable anyway, for quota and security reasons). This usually involves very inefficient spawning of processes and unnecessary operations every time a message is delivered. mailprocd solves that problem using persistent spam-checker processes running with user privileges. Idle spam-checker processes are simply expired when they are idle for too long. As an additional benefit, SpamAssassin's learning databases can remain open and be updated at a specific rate.

Under mailprocd, single users who are receiving large amounts of spam in a short amount of time can no longer cause excess load on the mail server since they can only have a certain number (typically one) of "worker" processes running concurrently. Heavier users can be accomodate with multiple "worker" processes, depending on how long the SpamAssassin tests take to execute.

Classification and delivery

mailprocd provides simple built-in mail classification services, which helps avoid the need for procmail/maildrop subprocesses in many situations. For maximum efficiency, it also handles various forms of e-mail delivery, such as local mailboxes/maildirs, forwarders and custom filter programs.

On systems running Postfix, mailprocd can allow unprivileged users to specify policies that directly affect the behavior of the SMTP server, using the SMTP Policy Manager interface provided by Postfix.

Mailing lists

Special support is provided for efficient delivery to mailing list managers. Currently, only Mailman is supported. The policy manager can even check for subscriber addresses in SMTP context. This allows for pre-queue rejection of messages sent to mailing lists from non-subscribers.

What's New in This Release:

Implement queueing; use a set of per-user "worker" processes to perform all delivery. This provides fairness, prevents heavy spam-filtering users from causing excessive load and even allows mailprocd to be used as a standalone MTA.
Added support for SMTP connection caching.
Added support for LMTP over a unix socket.
Unix sockets used by spamcheck processes are now contained in per-user directories, so control-socket requests are no longer required for unlinking them.
Fix potential crash bug if a rules.db entry was missing maxsize.
The SMTP server now conforms to RFC2034 and RFC1854.
Fix a bug in the SMTP server that would cause unnecessary retransmissions.
Added "mailmond" utility, a mail delivery delay monitor.
Complete signal-safety audit; fixed some potential signal-related issues.
Log any SIGPIPE caused by user filters not properly reading their input, so we can notify users about them.
Nicer handling of out of memory conditions.

Last updated on January 16th, 2008

#mail delivery #mail filter #mail classification #mail #e-mail #delivery #filter

Add your review!