ezmlm-idx mailing list manager - tips & tricks

Converting the archive to mbox format

This is a quick hack, but it works:

for i in LIST/archive/{[0-9],[1-9][0-9]}; do for j in $i/[0-9]*; do sed "1s/^Return-Path: <\(.*\)>$/From \1 `find $i -maxdepth 1 -path $j -printf %t`/" $j; echo; done; done > LIST.mbox

where LIST is the name of the mailing list (and thus of its directory).

When there are fewer than 100 messages in the archive, the above command will report errors like:

find: LIST/archive/[1-9][0-9]: No such file or directory
sed: can't read LIST/archive/[1-9][0-9]/[0-9]*: No such file or directory

but the resulting mbox will nevertheless be created correctly.

When there are more than 9999 messages in the archive, the command will need to be revised to process three-digit directory names as well.

Allowing some senders to bypass message moderation

ezmlm-make -m sets up a fully message-moderated list, including for list members. ezmlm-make -mu sets up a list that is moderated for non-members only, and it lets the list admin specify additional addresses that will bypass message moderation, via ezmlm-sub LIST/allow/ ADDRESS.

However, there's no “official” way to have a message-moderated list where some members can post unmoderated (e.g., those who have proven to make desirable postings), but some will be moderated (e.g., new subscribers who haven't posted to the list yet). The trick is to create or re-configure the list with ezmlm-make -mu (as well as with any other options that may be needed) and to edit the ezmlm-gate line in LIST/editor removing the second instance of the list's top directory, as well as the list's digest directory. The original line could look like:

|/usr/local/bin/ezmlm/ezmlm-gate '/home/lists/LIST' '/home/lists/LIST' '/home/lists/LIST/digest' '/home/lists/LIST/allow' '/home/lists/LIST/mod'

The edited line would be:

|/usr/local/bin/ezmlm/ezmlm-gate '/home/lists/LIST' '/home/lists/LIST/allow' '/home/lists/LIST/mod'

With this setup, it is also possible to let some non-members post unmoderated, by adding their envelope-from addresses to LIST/allow/.

This is how the oss-security mailing list is configured.

Safely re-configuring ezmlm-idx lists

It is advisable to make a copy of the entire list directory prior to applying changes, and do a recursive diff thereafter to make sure there are no unexpected changes (and to consider and deal with such changes if there are any). Possible causes for unexpected changes are: the config file being out of sync with the actual list configuration, custom changes to list configuration that could not be represented in the config file, and changes to ezmlm-idx's global defaults since the list was created or re-configured the last time.

Illustrated with a specific example:

cp -a owl-users/ nobackup/owl-users.prev
ezmlm-make -+ ~/owl-users/
diff -ur nobackup/owl-users.prev/ owl-users/ | less
# Oops, the trailing slash is seen as a change
ezmlm-make -+ ~/owl-users
diff -ur nobackup/owl-users.prev/ owl-users/ | less
# OK, no unexpected changes - just the "|./filmail" line is lost and the list
# owner address is obfuscated (a recent improvement to the global defaults).
ezmlm-make -+ -mu ~/owl-users
# OK, no extra changes (the list was already configured that way)
vi owl-users/editor
# Re-introduced "|./filmail" (invocation of our spam filter) as the first line,
# edited the ezmlm-gate line as described above.
internal/email/ezmlm-idx.txt · Last modified: 2008/07/07 14:40 by solar
Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate to DokuWiki Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki Powered by OpenVZ Powered by Openwall GNU/*/Linux