[Mailman-Users] How does the core of Mailman function?

Barry A. Warsaw barry at python.org
Thu Jan 23 18:09:22 CET 2003

>>>>> "JC" == Jonathan Chum <jchum at aismedia.com> writes:

    JC> I'm interested on how Mailman is able to deliver out emails
    JC> rapidly. I'm curious on whether it opens a pipe to Sendmail or
    JC> Qmail, injects the message, then closes the pipe after each
    JC> message it delivers or does it write a file directly into a
    JC> queue folder waiting to be sent...

    JC> The reason I ask is that people say SMTP is faster than
    JC> mailing via Qmail and that by opening/closing a pipe to Qmail,
    JC> it adds more overhead. Also, you'll fill up disk space faster
    JC> by queuing up messages than to directly email the message.

    JC> I'm weighing down alternatives and method of mail delivery for
    JC> a large client of ours.

Although this is probably a topic better discussed on
mailman-developers, I'll explain a little about what Mailman does.

Stock Mailman uses a dedicated mta to do final off-site delivery of
the messages, e.g. exim, sendmail, qmail, postfix.  There are a lot of
good reasons for this, e.g. dedicated mtas can do that job much more
reliably and efficiently, and can be configured to have very efficient
hand-offs from Mailman.  Think about delivery retries for example.

Mailman also has efficiencies for reusing socket connections to the
mta so it's not as bad as one connection per message per recipient.

You could conceivably write a bulk mailer/mta for Mailman, and in fact
very early versions had such a beast.  But it's a lot of work to build
in all the tunable parameters, cross platform compatibility, reliable
retries, etc. etc. that a typical mta has.  I see it as outside the
scope of Mailman, but Mailman could utilize such an open source tool
if there were people motivated enough to write and maintain one.  The
fact that none exists tells me that the existing arrangement works
just fine for most people.


More information about the Mailman-Users mailing list