Enforce Coding Standards with PHP_CodeSniffer and Eclipse IDE on Ubuntu Linux
Native Linux Space Warfare: Freespace 2
Scrollable Tables with Floating Header using CSS
A Simple ISAPI Filter for Authentication on IIS
Using Multi-Byte Character Sets in PHP (Unicode, UTF-8, etc)
JQuery Venetian Blinds Transition Effect

File Structure of ezmlm Mailing Lists

Wednesday, 25 November 09, 4:22 pm
The ezmlm mailing list stores configuration options for a list as files on the file system (rather than using a config table in a database, or even a single config file).

In order to migrate a list from ezmlm to another list manager, such as mailman, it's necessary to understand the file structure in order to work out how the list is configured.


4:24 pm, Wednesday, 25 November 09

Structure of subscriber databases

ezmlm subscriber email addresses are stored within DIR/subscribers/ as a hashed set of 53 files. The hash calculated from the address determines which of the 53 files an address is stored in. Thus, to find out if an address is a subscriber, ezmlm has to read at most about 2% of the email addresses. The hash function ensures that email addresses are reasonably evenly distributed among the 53 files.

Addresses in the files in DIR/subscribers/ are stored as strings starting with 'T', followed by the address, followed by a zero byte. This is the same format as taken by qmail-queue(8) on file descriptor 1. Thus, subscriber lists can be directly copied to qmail without any further processing.



4:50 pm, Wednesday, 25 November 09

From the ezmlm man page:

ezmlm-manage allows automatic subscription if dir/public exists.

dir/archive is a directory containing messages previously sent to subscribers. ezmlm-send archives all new messages if dir/archived exists. If dir/indexed exists, ezmlm-send also maintains a message subject and author index.

For moderation options, the moderators are stored in a subscriber list in moddir/subscribers. By default moddir is dir/mod.

dir/prefix is a subject prefix. If this file exists, its contents are prefixed to the subject of the post in the outgoing message.

dir/text is a directory containing files sent out by ezmlm-manage in response to administrative requests

dir/digest contains items specific for the digest list.

dir/digest/subscribers contains hash files of digest subscriber addresses.

The -s switch is added to the ezmlm-get(1) line in dir/manager so that only subscribers can access the archive.

dir/manager uses ezmlm-manage -U to allow unconfirmed unsubscribe.

dir/text/info contains a short description of the list.

The list set up with ezmlm-get -P to allow only moderators archive access.

The -s switch is added to the ezmlm-get(1) line in dir/manager so that only subscribers can access the archive.

Message moderation. dir/modpost is created. dir/editor is set up with ezmlm-store(1) instead of ezmlm-send(1).a dir/moderator is set up with ezmlm-moderate(1), and ezmlm-clean(1). dot/-accept-default and dot/-reject-default are linked to dir/moderator. dir/text/mod-help is adjusted. Special action is taken when the -m switch is combined with -u. In this case, the setup is as for the -m switch alone, but dir/editor is set up with ezmlm-gate(1) which will fork ezmlm-send(1) for posts with an envelope sender that is a subscriber or a moderator, and for ezmlm-store(1) for posts with other envelope senders. The consequence is that posts from subscribers (with the usual caveats for SENDER checks) are posted directly, whereas other posts are sent for moderation.

A ezmlm-issubn(1) line that tests the envelope sender against the address database in dir/deny is inserted into dir/editor. As a consequence, posts from such senders are blocked.

the ezmlm-store -P switch is used so that posts from non-moderators are rejected rather than sent for moderation
Leave Comment

/xkcd/ The Simpsons

About This Page