OSEC

Neohapsis is currently accepting applications for employment. For more information, please visit our website www.neohapsis.com or email hr@neohapsis.com
 
Subject: procmail -vs- maildrop (was Re: daemons)
From: Bennett Todd (betrahul.net)
Date: Thu Jun 01 2000 - 12:51:11 CDT


2000-06-01-13:33:54 Ronneil Camara:
> Anyways, I will try procmail and maildrop. Which has better
> filtering (procmail or maildrop)?

That's hard to say. There are plusses and minuses to each of them.
I'll try and sketch 'em out, but this is seriously deep into matters
of opinion, and there's no better way for you to form your own than
trying them both; adopting someone else's isn't nearly as good.
They're both good respected pieces of software.

They both have comparable filtering --- their filtering is comarably
powerful. Either one can do pretty much anything you might want in
email filtering and filing.

Procmail is written in _very_ tightly bummed C. In fact, the coding
style reflects an approach to hand-optimization that is now utterly
out of fashion, taking care to reuse variables as much as possible
and so forth. Many complain that between the hand-tuning of the
code, and idiosyncracies in layout and commenting, it's excessively
hard to maintain.

Maildrop is written in C++, and compiles great with gcc (or egcs).
It's code looks quite a bit cleaner at least to the eye. There's a
good bit of it.

Procmail has a filtering language that has grown, attempting to
maintain backwards compatibility, from a much simpler and far less
powerful filtering language. Things like conditional execution have
been retrofitted, and they are done using cryptic single-letter
flags. procmailrc config language isn't as repulsive as sendmail.cf,
but now that we've expurgated that from our systems it may be the
ugliest config language left on the system.

Maildrop has a very clean and pleasant looking config language; I
like it a lot.

Procmail always reads every message into memory. If your email
system is configured to permit large-enough messages to overwhelm
VM, procmail can easily kill your system. Maildrop will stage
messages bigger than some threshhold size to a tmp file. On the
other hand, procmail is faster than Maildrop.

Procmail's executable is considerably smaller than maildrop's; this
might make a difference when you consider that either one will have
to fork-n-exec for each message delivered. Procmail is fast. But
maildrop isn't enough slower to be noticeable in many settings.

Procmail has the most robust mbox delivery code around; it goes to
all lengths to try and handle it safely, even in places where that's
impossible in principle (delivering over NFS). Maildir support was
only recently fitted into procmail. Maildrop may be as good on
mboxes, I don't know, but it has had native Maildir support from the
beginning, and that's definitely the way to go.

Procmail enjoys precedence: it has been around a lot longer, so
there are some nice mature projects based on it for doing e.g. spam
filtering. Maildrop is a lot newer and younger.

-Bennett


  • application/pgp-signature attachment: stored