Notes on mailing list software
by Gerald Oskoboiny
I'd like to find (or write) better mailing list software; all
the packages I've seen so far seem to have major shortcomings.
I know Majordomo and smartlist very well and have used each of
them to administer anywhere from dozens to hundreds of lists
for the past few years, but don't have much experience with
others.
There are a number of specific features
I would like that are missing from current mailing list
managers.
Here are some notes (mainly for my own use) on existing mailing
list software that I have used or evaluated:
- sympa: seems
fairly good; I tried installing it (sometime around spring 2000?)
and it isn't quite as good as I thought (db schema is a little
weird), but it seems to have promise.
- GNU Mailman:
- Pros:
- seems to be the favorite of most modern open source
development projects (-> lots of attention, bugs should get
noticed and fixed quickly, should have all the features you'd
expect from a modern MLM)
- Cons:
- the archiver
bundled with version 1.x (pipermail) has an awful bug in that
the "downloadable" versions of the archives are not valid mbox
files, so they can't be read with standard
mbox-reading tools like mutt; only a few headers are present
(no msgids or other useful headers). This is reportedly fixed
in version 2.0, due to be released in Oct 2000.
- I remember finding some other things that bugged me about
version 1.x (I think I looked at the code and didn't like it
for some reason), but I should take another look at a newer
version.
- majordomo:
internals/modularity sucks; human interface is quite good/evolved;
Majordomo2 sounds like it might be better but doesn't have much
of a user community yet
- smartlist: cons: incomprehensible, hard to hack/patch, not
actively maintained; pros: fairly nice extension mechanism for
installation- or archive-specific hacks (rc.local.s20 etc.)
- ezmlm: might be good if
it can be disentangled from qmail and djb easily
- Listar sounds
okay/good; haven't evaluated it carefully yet
- couriermlm
of the courier
MTA sounds pretty good
- LISTSERV: just plain
bizarre. I recently (2000-10) joined a list run by listserv
(version 1.8d), and the interface is identical to how I
remember it being more than 10 years ago; these guys seem to
have tried hard not to innovate in any useful way. Specific
problems:
- subscription confirmation process violates the HTTP
protocol (uses GET when
they should use POST)
- emailed commands are replied to twice: once with a
bizarre, useless "Output of your job" message that tells you
how much CPU time it took to process your request, and
another with the actual information you requested.
- the standard "welcome to the list" message has its text
justified on both the left and right, with a bunch of extra
spaces in between words to make them line up on the right
side. Where were they a few decades ago when everyone else
realized that you shouldn't justify monospace text like that
since it's harder to read?
- no List- headers (RFC 2369)
- emailed archive files are in a weird non-MIME, non-mbox
format, and lack message-IDs for each message.
- messages from the list aren't clearly marked as being
from a daemon (no Precedence: header); none of the usual loop
control headers are present (Delivered-To:, X-Loop:)
- Reply-To's
are munged (probably configurable per list, but I
wouldn't be surprised if that's the default setting)
- seems to enforce an 80-column limit on messages, by
breaking long lines in half
Not list software, but related stuff:
Desired features that are lacking from most current mailing
list managers:
- store dist and accept lists in a database (in a relational
way, not just storing flat text files in a db)
- flexible dist/accept policy setting
- pools of administrators/moderators
- automagic bounce handling using VERPs backed by postfix or qmail
- easily extensible like smartlist's rc.local.* files,
to add hooks to archivers or whatever
- ability to moderate a new subscriber's posts for the first
few posts (or first few days/weeks)
- when a message is bounced to the maintainer, (optionally) send
a message back to the poster telling them what happened and why
- use Delivered-To: for loop control
- preserve all incoming Received: headers (cf. RFC 2505 sec. 2)
- use List- headers (RFCs 2369, 2919)
in a sensible way, by default
- accept commands by email as well as web
- use GET and POST
correctly in any web interfaces
- reject apparent duplicate messages, based on msgids and/or message
bodies
Last modified: $Date: 2001/10/25 06:02:51 $
Gerald Oskoboiny, <gerald@impressive.net>