Mixing EZMLM with Postfix


EZMLM (better with the -IDX patch) is a full-featured mailing list manager, designed to work with the excellent qmail mail transfer agents (MTAs). I have used qmail for years, and one of the best benefits of it is it doesn't add new features willy-nilly. If you want to install-and-forget, qmail is the way to go. But only if it has the features you want.

I found one feature it didn't: The ability to interrupt a message mid-transfer based on the match of one in a series of regular expressions in the header or in the body. However, Postfix does. The problem is that EZMLM is designed to work exclusively, and very tightly, with qmail.

Cursory googling (first page of hits on "ezmlm postfix") was unhelpful. I found the following:

I found none of them to be particularly helpful. In two of them, Wietse Venema discussess adding support for the QMQP "protocol" into Postfix, and after reading the documentation for it I didn't see how it would be helpful. Another says that it's not possible until Postfix adds support for the VERP protocol. These messages were posted two years or more before I attempted this.

Rather than attempt to patch EZMLM to work with Postfix, I decided to attempt to have two MTAs on one machine, with Postfix being the primary, and feeding qmail mailing list stuff. qmail is setup to relay all messages through Postfix.

Clearly, this solution is not going to be sufficient where speed is a primary concern. But for my needs, it's way more than enough. In the event a reader is attempting a similar feat, but requires greater speed than this solution provides, there is one obvious speedup: replace the lame perl script below with something written in C. But it would be better all around just to hack ezmlm to use whatever native MTA is present, possibly by using a generic exec to "/usr/sbin/sendmail -t".

One-Time Setup

The following steps need to be executed once, during installation.

Steps To Add A New List


This solution appears to work well for me for low-volume mailing lists. Local deliveries, including 100-message archive retrievals, are very nearly instantaneous on the 133MHz box that the server runs on. If you attempt this using these instruction, I would very much like to hear about it. Especially if you succeed.