[Mailman-Developers] LTMP for incoming mail
Barry Warsaw
barry at python.org
Thu Sep 28 14:12:55 CEST 2006
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
I've changed the subject to more accurately reflect this thread.
On Sep 28, 2006, at 4:11 AM, Nigel Metheringham wrote:
> On Wed, 2006-09-27 at 23:25 -0500, Brad Knowles wrote:
>> LMTP is probably the best and most native method for both sendmail
>> and postfix. I can't speak for other MTAs.
>
> Exim can do LMTP, over a pipe (ie fork/exec program), a socket or
> TCP/IP.
What I find really intriguing about this approach is the ability to
reject some messages immediately, presumably allowing the MTA to
bounce them. It's not clear how much work we could get away with at
message receipt time in our mythical LMTP server, but let's imagine
we could at least parse the message and do some preliminary sanity
checks on it. Say the message had MIME breakage or couldn't be
parse. Or say we could do a quick check of the sender's permissions
to post, etc. We could reject the message then before it entered
Mailman's incoming queue.
What worries me most about this though is that we'd have to (probably
write and) maintain an LMTP server, and make sure that it was
efficient enough to keep up with incoming mail pressures, both steady
state and peak, and be highly robust against errors. Plus, this is
another moving part that mailmanctl would have to manage, and of
course, if our LMTP server breaks, your Mailman is no longer
accepting incoming mail. We should not underestimate the work
involved here.
I did a quick Google search to see if there were any GPL'd LMTP
servers we could piggyback on, the idea being that if we could find a
shell of a C program we could embed Python in and talk directly to
Mailman during the LMTP protocol. I found this one in the PLL project:
http://pll.sourceforge.net/
but it looks like the code is several years old so I doubt it's being
maintained, and it doesn't appear to have been released as a 1.0
tool. Postfix has an lmtp server, but it seems fairly heavyweight
(being tied into the smtp server) and it's not clear to me we could
combine our GPL code with Postfix's license.
Of course there's always Twisted, but that seems like a big bite to
take for this task.
ISTM that the trade-off then is rolling our own LMTP server vs. doing
maildir delivery. Are we confident that we can implement a high
performance enough server that would give us better throughput than
maildir would? In Python?
It might be fun to try, but OTOH it /is/ a distraction from other MM
2.2 work that needs to get done. So unless anybody has any leads on
existing GPL-compatible code we could use, or feels really motivated
to work on a Python version, I'm inclined to go with maildir for
MM2.2. It's not like we couldn't add LMTP at some later point.
- -Barry
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (Darwin)
iQCVAwUBRRu8TXEjvBPtnXfVAQICiAP8DahfyRAcVrrbYIFAUlC8R8AA7oZiuJxV
NPQ/7Juaf0FrU/nrK+2uWZ6Zf614Tv4lQh3TwRxaOgPHgfsSB8a0UknN+Zy+nXyK
gs9DMHQ2iIan/uIDxo1E4Qtu9sDuh1nctbm8pd3NW8bbyvqmNyli9bknHqE/LtDu
12RcvYEBIdc=
=h3r9
-----END PGP SIGNATURE-----
More information about the Mailman-Developers
mailing list