Few questions for the Mailman list...
G'Day,
I'm currently compiling a list of prospective MLM software for the QUT Messaging Project (redesigning the Queensland University of Technologies email systems).
We are running a mail system for approx 53,000 users supporting approx 1,500 lists. The lists are generated by the Universities student database systems at this time.
I was particulalry interested in: password systems?
- How your software stores and accesses the mailing list information (List Members, Administrators, Moderators, Members).
- What command line tools or non-web-broswer methods are available to administer the lists.
- What tools are available to make a mass upload of lists members and owner/moderator details?
- Can we link in authentication (C code) to authenticate to our
- Is there a webbased interface for administrator of the mail list service.
- I'd also like to know what way the lists are stored... Are they in a flat file/DB/Hash? How's this achieved for your product?
- And even though we can add our own adjustments to the code for the purposes of authentication, are there plans for adding support for industry supported authentication mechanisms such as Cyrus SASL? <http://asg.web.cmu.edu/cyrus/download/sasl/doc/>
-- Antony Somerville Messaging Project Queensland University of Technology Brisbane Queensland, Australia Ph: +61 7 3864 4434 Fax: +61 7 3864 2921
I'm currently compiling a list of prospective MLM software for the QUT Messaging Project (redesigning the Queensland University of Technologies email systems).
We are running a mail system for approx 53,000 users supporting approx 1,500 lists. The lists are generated by the Universities student database systems at this time.
I was particulalry interested in:
- How your software stores and accesses the mailing list information (List Members, Administrators, Moderators, Members).
The information for each list is stored in a large database file called "config.db" which is stored in a directory ~mailman/lists/email-list-name. The database stores the configuration of the list as well as the members and the configuration of each member in that file in text format. Mailman also maintains a backup copy of config.db in the file "config.db.last". This is a copy of "config.db" before the last time it was changed.
- What command line tools or non-web-broswer methods are available to administer the lists.
From ~mailman/bin/...
add_members: add regular or digested users to a list. arch: rebuild a mailing list's archives. check_db: check a mailing list database for corruption. check_perms: check the permissions on the Mailman installation. clone_member: add a list member with identical settings as an existing list member (including password). config_list: change list configuration from the command line. digest_arch: convert majordomo archives into mailbox format. Old program, use with extreme care! dumpdb: dump the contents of a Mailman .db file. find_member: find all lists that a specified user is on. list_lists: list all the Mailman mailing lists. list_members: list all the members of a mailing list. mmsitepass: set the site password, good for admin-ing any list. move_list: move archives for a list you have renamed newlist: create a new mailing list. remove_members: remove specified members from a list. rmlist: remove an old mailing list - does not remove the archives unless you specify -a. sync_members: synchronizes mailing list membership with a flat text file. update: upgrade from previous version of Mailman to current version. version: print out the version of Mailman you are using. withlist: advanced interactions with mailing list objects.
paths.py - module used by many Mailman scripts to tell it where its files are stored.
- What tools are available to make a mass upload of lists members and owner/moderator details?
You can load the members from the command line using "add_members" or "sync_members", from the web interface you would simply cut and paste the users into the add user box on the Membership Management page.
You can load the configuration from the command line using "config_list", or you can use the web-based admin interface.
- Can we link in authentication (C code) to authenticate to our password systems?
Feel free - it's open-source software. Note, currently the passwords are stored in the config.db database in text format. The code used in the scripts accesses that database and simply reads in the text based passwords for comparison. You would have to find the code in each script and re-write it to use PAMS or whatever password authentication you want.
There are drop and insert modules which do just that: authenticate a user/password combo against a remote or local password system.
- Is there a webbased interface for administrator of the mail list service.
Yes, a very nice one.
- I'd also like to know what way the lists are stored... Are they in a flat file/DB/Hash? How's this achieved for your product?
The lists are stored in a db format as part of the config.db file. The data is stored as text, and can be accessed and manipulated by any standard .db access program.
- And even though we can add our own adjustments to the code for the purposes of authentication, are there plans for adding support for industry supported authentication mechanisms such as Cyrus SASL? <http://asg.web.cmu.edu/cyrus/download/sasl/doc/>
Again, its open-source, so feel free. I'm sure someone somewhere is looking at the integration - if it's not already done. Sure would be a good Graduate project...
Hope this helps - Jon Carnes
On 01 October 2001, Jon Carnes said:
I was particulalry interested in:
- How your software stores and accesses the mailing list information (List Members, Administrators, Moderators, Members).
The information for each list is stored in a large database file called "config.db" which is stored in a directory ~mailman/lists/email-list-name. The database stores the configuration of the list as well as the members and the configuration of each member in that file in text format. Mailman also maintains a backup copy of config.db in the file "config.db.last". This is a copy of "config.db" before the last time it was changed.
Jon forgot one little detail, which is the format of config.db. It's a Python "marshall" file, ie. written by the "marshall" module from Python's standard library. Mailman comes with a bunch of command-line utilities for viewing/manipulating lists, but if you need to step "outside the box", you'll have to write a bit of Python code.
Eg. if you run this from ~mailman:
$ python Python 2.1 (#2, May 8 2001, 10:50:59) [GCC 2.95.2 20000220 (Debian GNU/Linux)] on linux2 Type "copyright", "credits" or "license" for more information.
from marshal import load config = load(open("lists/foo/config.db"))
the config.db for the "foo" list is loaded into a Python dictionary 'config', which you can then grub about in as much as you please. This is probably not necessary very often, but it's nice to know that it can be done.
BTW, this holds for Mailman 2.0 and earlier. I believe Mailman 2.1 uses "pickle" (another, more powerful persistence mechanism for Python) for list config information.
- I'd also like to know what way the lists are stored... Are they in a flat file/DB/Hash? How's this achieved for your product?
The lists are stored in a db format as part of the config.db file. The data is stored as text, and can be accessed and manipulated by any standard .db access program.
Were you talking about the list meta-data (name of list, subscribers, subscriber options, etc.) or the message archive itself? The archive is stored as one big traditional Unix "mbox" file, ie. with messages separated by "\n\nFrom ". I believe the web interface to the archive is generated by reading that mbox file and spewing a bunch of HTML files.
Greg
-- Greg Ward - software developer gward@mems-exchange.org MEMS Exchange http://www.mems-exchange.org
participants (3)
-
AE Somerville -
Greg Ward -
Jon Carnes