Aha!! a mailman developer's list!!
Apparently I was in the same position as Ken Manheimer, with regards to
MailMan. When the origional Mailman web sites & lists dissapeared, and
didn't come back, I thought the author had abandoned development, and
continued hacking at MailMan for my own use.
I have made numerous changes to the code as a result. Now that I
am aware that MailMan is being actively developed, I would like to see
what I can do about merging these versions together.
I started with a copy of Mailman 1.0b1. Because I was unsure of
the status of MailMan, I have been calling my version DMM (the Dragon's
version of MailMan), and the python modules I have added start with 'dmm_'
I haven't yet had the time to download & go over the 1.0b2.0 (that
is the most current version ?) sources, to see what things I've done may
be redundant, (I will this weekend) but here is a list of the changes that
I've made (that I can think of so far):
(in roughly chronological order)
Added Makefile to make & install all the wrappers. Earlier versions of
this were posted to the previous MailMan dev list. Things have
been improved since.
Removed all dependance on MailMan being in /home/mailman.
I made sure all scripts were always being run as the MailMan user,
then used the pwd module to find the current user's home directory.
Everything else is found from there. (I did this so I could have two
MailMan installs on one machine, a 'production' server, which runs several
lists, and a development server)
Re-did logging system. Removed all /tmp logging. Created module that
redirects errors to files in ~/logs Error log files are named for
the scripts (thus errors from admin show up in ~/logs/admin.err) This is
done automatically by importing the logging module.
(major) Compleatly changed the way outgoing mail gets sent.
Did much re-writing of mm_message & mm_deliver modules. Both
OutgoingMessage & IncomingMessage are now derived from a common base
class, ListMessage. Sending is accomplished by calling send method of
message object.
Mail is no longer sent by piping to 'sendmail'! Instead, outgoing
messages are punted to a mailserver (currently always localhost)
via SMTP. I wrote an SMTP module, smtplib to do this. smtplib is now part
of the python standard library as of 1.5.1
Added random-mnemnonic password generator. Instead of passwords like
'qZ', AOL-like random-word passwords are generated (like
'cold-blue-tiger')
Added multiple subject: prefix removal and Re: compaction
changes subjects like:
"Re: Prefix Re: Prefix Re Something"
to "Prefix Re[3]: Something"
(major) Changed the way user data is stored (still tying up loose ends on
this)
Created a User class. User data is no longer stored in the
config.db file. Instead there is a shelf full of User objects.
The main Mailinglist object contains an instance of a UserDB class that
manages storing, retrieving & quering this database. Most of the *User*
methods of the Mailinglist class have become methods of the User class.
Changed the way user options are handled. Options are referenced by name
(a string) and can be Boolean or "multiple-choice" values. Info on
available options & allowed values for them are available via methods
of the User objects. I compacted the 'Digests', "DisableDelivery" and
"EnableMIME" options into one multiple-choice "delivery_mode" option."
There have prolly been soem bugfixes too.
Hopefully all this work wasn't redundant :>
-The Dragon De Monsyne