Next Previous Contents

1. General Information

1.1 Acknowledgements

Many ezmlm users have contributed to improvements in ezmlm-idx. These are listed in the README.idx file in the ezmlm-idx distribution. Others have through questions and suggestions inspired parts in this FAQ, or pointed out errors or omissions. Thanks! Direct contributions are attributed to the respective authors in the text. Thanks again!

1.2 What is this document?

This FAQ contains answers to many questions that arise while installing ezmlm, ezmlm-idx, and while setting up and managing ezmlm mailing lists. See difference for a brief summary of what is ezmlm and what is ezmlm-idx.

Many aspects of ezmlm are covered in several places in this FAQ. The early sections explain how ezmlm works. Later sections discuss how to deal with possible errors/problems. Subsequent sections discuss details of customization and list setup in a HOWTO form. Finally, there are sections on information philosophy for moderated lists and on security aspects on ezmlm lists.

This is an evolving document. If you find any errors, or wish to comment, please do so to the authors. This FAQ is currently aimed at system administrators and knowledgeable users, and heavily weighted towards questions specific to the ezmlm-idx add-on.

If you have problems with the ezmlm-idx package, please start by reading the ``man'' pages which come with each program, then this document and other ezmlm documentation which is identified here. If you have exhausted these resources, try the ezmlm and qmail mailing lists and their respective mailing list archives. If you have solved a problem not in the documentation, write it up as a proposed section of a FAQ and send it to the authors. This way, it can be added to the next version of this FAQ.

1.3 Terminology

This document uses a number of terms. Here are the meanings ascribed to them by the authors.


The base directory of the list.


The envelope sender of the message, as passed to ezmlm by qmail via the $SENDER environment variable.


The local part of the envelope recipient. For list-get-1@host, it is usually list-get-1. If host is a virtual domain, controlled by user-sub, then local would be user-sub-list-get-1.


Base directory for moderators. Moderator E-mail addresses are stored in a hashed database in moddir/subscribers/. By default, ``moddir'' is DIR/mod/.

To add or remove moderators:

% ezmlm-sub DIR/moddir moderator@host.domain
% ezmlm-unsub DIR/moddir moderator@host.domain


The second argument of ezmlm-make is the main .qmail file for the list. dotdir is the directory in which this ``dot file'' resides, i.e. the directory part of the ``dot'' argument. This is usually the home directory of the user controlling the list (but NOT necessarily of the one creating the list). Thus, dotdir is ~alias/ if ``root'' creates a list:

 # ezmlm-make ~alias/list ~alias/.qmail-list ...
dotdir is where the .ezmlmrc file is expected when the ezmlm-make(1) ``-c'' switch is used (see Customizing ezmlm-make operation).

ezmlm binary directory

The directory where the ezmlm-binaries are normally stored, as defined at compile time in conf-bin. This is compiled into the programs and does not change just because you have moved the program.


This is a reference to the ezmlm-get.1 man page. Access it with one of the following:

% man ezmlm-get
% man 1 ezmlm-get
or if you have not yet installed ezmlm-idx (replace ``xxx'' with the version number):
% cd
% man ./ezmlm-get.1


The list directory when referencing the list subscriber address database. For E-mail addresses stored in a set of files within DIR/subscribers/, the ``basedir'' is ``DIR''.

address database

A collection of E-mail addresses stored in a set of files within the ``subscribers'' subdirectory of the basedir, DIR/subscribers/.

message moderator

An address to which moderation requests for posts to the list are sent. The moderation requests are formatted with ``From:''-``reject'' and a ``To:''-``accept'' default headers for moderator replies. A reply to the ``reject'' address leads to the rejection of the post. A reply to the ``accept'' address leads to the acceptance of the post. Any E-mail address can be a moderator E-mail address. Any number of moderator E-mail addresses can be used. If a post is sent from a moderator E-mail address, the moderation request is sent to that E-mail address only. If a post is sent from an E-mail address that is not a moderator, a moderation request is sent to all moderators.

The first reply to the moderation request determines the fate of the message. Further requests for the action already taken are silently ignored, while a request for the contrary action results in an error message stating the actual fate of the message. Thus, if you want to ``accept'' the message and it has already been accepted, you receive no reply, but if you attempt to ``reject'' it, you will receive an error message stating that the message already has been accepted.

Most lists are not message moderated. If they are, the owner is usually a ``message moderator'', sometimes together with a few other trusted users.

For an announcement list, it is common to make all the ``official announcers'' ``message moderators''. This way, they can post securely and ``accept'' their own posts, while posts from other users will be sent to this set of ``official announcers'' for approval.

subscription moderator

An E-mail address where subscription moderation requests are sent. A subscription moderation request is sent after a user has confirmed her intention to subscribe. The subscription moderation request is sent to all moderators. As soon as a reply to this message is received, the user is subscribed and notified. Any E-mail address can be a subscription moderator and any number of subscription moderators can be used.

Unsubscribe requests are never moderated (except when the ezmlm-manage(1) ``-U'' flag is used and the sender attempts to remove an address other than the one s/he is sending from). It is hard to imagine a legitimate mailing list that would want to prevent unsubscriptions.

remote administrator

When a remote administrator subscribes or unsubscribes a list member, the ``confirm'' request is sent back to the remote administrator, rather than to the subscriber's E-mail address. This allows the remote administrator to (un)subscribe any list member without the cooperation of the subscriber at that address. Any E-mail address can be a remote administrator and any number of E-mail addresses can be remote administrators.

The set of E-mail addresses that are ``remote administrators'' and ``subscription moderators'' are always the same. This set of E-mail addresses can be ``remote administrators'', ``subscription moderators'' or both.

For most lists, the owner would be the ``remote administrator'', if s/he wishes to moderate messages, the owner would be the ``message moderator'' and if s/he wishes to moderate subscriptions the owner would also be the ``subscription moderator''.

The list's ``message moderator(s)'' can be the same, but can also be set up to be completely different.

Changing list ``ownership''

Within this FAQ there are references to the need to check or change the list ``ownership.'' This is not a reference to the individual user who is the ``list-owner'', but a reference to the ownership of the files by your operating system which make up the list and reside in DIR/.

To change the ownership of DIR/ and everything within:

% chown -R user DIR
% chgrp -R group DIR
Depending on your system/shell, it may be possible to combine these commands into either:
% chown -R DIR
% chown -R user:group DIR

1.4 What is the difference between ezmlm and ezmlm-idx?

ezmlm-0.53 is a qmail-based mailing list manager written by Dan J. Bernstein. It has all the basic functionality of a mailing list manager, such as subscriber address management including automated bounce handling as well as message distribution and archiving.

ezmlm-idx is an add-on to ezmlm. It adds multi-message threaded message retrieval from the archive, digests, message and subscription moderation, and a number of remote administration function. It modifies the configuration program ezmlm-make(1) so that it uses a text file template rather than compiled-in texts in list creation. In this manner, ezmlm-idx allows easy setup of lists in different languages and customization of default list setup. ezmlm-idx also adds MIME handling, and other support to streamline use with languages other than English. As an ezmlm add-on, ezmlm-idx does not work without ezmlm and tries to be compatible with ezmlm as much as possible. ezmlm-idx also modifies the ezmlm subscriber database to be case insensitive to avoid many unsubscribe problems.

ezmlm-idx-0.32 adds improved handling of very large lists with optimized bounce handling, ezmlm-split(1) for forwarding (un)subscribe requests to sublists to allow sublisting transparent to the subscriber, and SQL support to allow sublisting with improved message authentication and monitoring of list function, as well as dynamic addition/removal/reconfiguration of sublists. Also, subscriber ``From:'' lines are logged with support for finding a subscription address from a name. The qmail DEFAULT variable is used, if present. Together, these additions eliminate the most common problems making ezmlm use and administration even easier.

This document is a FAQ for ezmlm-idx. However, many of the basic items that are discussed also apply to ezmlm per se. Referring to the two paragraphs above, it should be relatively easy to figure out which features require ezmlm-idx.

1.5 Where can I get all of the ezmlm-related programs?

We have now registered to make access to ezmlm-idx and related programs/documentation easier. is currently an alias for Fred B. Ringel's and an alias for Fred Lindberg's

Dan J. Bernstein's ezmlm-0.53

The latest version of ezmlm-idx

ezmlm-idx releases are numbered ``ezmlm-idx-0.xy[z]''. Versions with the same ``x'' are backwards compatible. A change in ``x'' signifies major changes, some of which may require list changes (see UPGRADE.idx). However, backwards compatibility with ezmlm-0.53 list will be maintained. Thus, this is an issue only if you are already using an older version of ezmlm-idx.

Addition of ``z'' are bug fixes only. Thus, ezmlm-idx-0.301 is ezmlm-idx-0.30 with known bugs fixed (but no other significant changes). When available, patches are named ``filename-0.xy[z].diff'', where ``0.xy[z]'' corresponds to the release to which they apply. When a number of bugs (or a significant bug) are found a bug-fix release is made incorporating all the patches for the previous version.

To get the latest features, look for the highest number (``e.g. ezmlm-idx-0.32''). Any bugs in versions with new features are expected to be limited to the new features.

To get the most solid version, get the highest 3-digit number, i.e. a bug fix. If you already run a version in that series and a new bug fix is released, see CHANGES.idx to determine if it is worthwhile to upgrade. Most bugs so far have been relevant only when using lists in very unusual ways or with rarely used options.

ezmlmrc(5) files for different languages

The latest versions at the time of release of a package are included in that package. Thus, this directory will have a file labeled with the current ezmlm-idx version number only if it has been updated later than the package. ezmlmrc(5) files are updated and new ones are added all the time, also with bug fix releases. Therefore, always look at the latest package.

ezmlmrc(5) files contain some release-specific configurations. Do not use a later file (other than from bug fix releases) with an earlier version of the programs. It is usually OK to use a version from an earlier package (see UPGRADE.idx), but some new functionality may nor be available.

To contribute an ezmlmrc(5) file in a new language, start with the en_US version from the latest package, and send the gzipped file to Please leave comments intact and in English and do not change the order of items in the file. This will facilitate maintenance.


RPMs and SRPMS of qmail, ezmlm and ezmlm-idx

1.6 Where can I find documentation for ezmlm and patches?

man pages

All ezmlm component programs come with their own man pages. Thus, for info on ezmlm-send, type:

% man ezmlm-send
or if you have unpacked ezmlm, but not made it or installed it:
% cd ezmlm-0.53
% man ./ezmlm-send.1


General info on ezmlm and list directories is in ezmlm.5:

% man ezmlm
% cd ezmlm-0.53
% man ./ezmlm.5

NOTE: Installation of the ezmlm-idx package updates some existing man pages to reflect changes made by the patch (e.g. ezmlm-send(1), ezmlm(5)).

Text files in the distribution

ezmlm comes with a README file with general instructions, an INSTALL file with installation instructions, an UPGRADE file for upgrading from a previous version and a CHANGES file with information on changes from previous versions. ezmlm-idx comes with similar files suffixed with ``.idx''. Most other patches or add-ons contain similar files and man pages and should contain identifying suffixes (.iss for ezmlm-issub, for example). For a discussion of the authors' understanding of ezmlm security, see Ezmlm-idx security.

``Ezman'', an ezmlm/idx manual

The ezmlm manual is a brief manual that is meant for list subscribers, list moderators and remote administrators, and as an introduction for list owners. It is useful even if you do not use ezmlm-idx. Features requiring ezmlm-idx are marked as such. The manual is available as a set of html files, as a text file, and in a ``letter'' and ``A4'' postscript version:

This FAQ

This FAQ is built from a sgml source. It is available in the following formats:

WWW resources

An on-line version of this FAQ main site with an up-to-date mirror list. mirror. mirror. mirror. mirror. mirror. mirror.

General qmail and ezmlm info

The qmail mailing list archive

The ezmlm mailing list archive

Mailing lists

Please read other documentation and mailing list archives before posting questions to the lists. It's also useful to ``lurk'' on the list for a few days, (i.e. to subscribe and read without posting) before asking your questions on the list.

To subscribe, send mail to the E-mail addresses listed:

1.7 Where do I send comments on this document?

To the authors via E-mail:

1.8 How to experiment with new versions of ezmlm-idx.

ezmlm-idx>=0.23 writes DIR/config in a standard format. If ezmlm-make(1) is invoked with the ``-e'' or ``-+'' switch and the ``DIR'' argument only, ezmlm-make(1) will read other arguments from this file. The difference between the switches is that with ``-e'' the options used are the ones specified on the command line, whereas with ``-+'' they are the ones currently active for the list, as overridden by any command line options. Thus, with just:

        % ezmlm-make -+ DIR
you can rebuild the list, without affecting any archives, list state variables, etc. You will lose manual customizations to some of your DIR/text/ files. DIR/headeradd, DIR/text/info, DIR/text/faq, DIR/text/mod-sub, and DIR/text/sub-ok are protected against being overwritten, so that your manual customizations of these files are retained.

To test a new version of ezmlm-idx or to run several version, make the new version as per INSTALL.idx (if you haven't used ezmlm-idx before) or UPGRADE.idx (if you've got a previous version of ezmlm-idx installed), setting conf-bin to a new directory. You can use either the current directory or any other directory. If not using the current dir, you also have to:

        % make setup
If you now edit the list using the new ezmlm-make program, the list will automatically be configured to use the new binaries. To change back to the ``default'' installation, just edit the list again, this time with the old ezmlm-make(1).

If your system has an /etc/ezmlmrc file, you may need to temporarily place the ezmlmrc(5) file for the ezmlm version you want to test in dotdir of the list and use the ezmlm-make(1) ``-c'' switch (see Terminology: dotdir).

ezmlm-idx>=0.314 comes with ezmlm-test(1), a program that tests most functions of ezmlm+idx and can be used before installation.

Next Previous Contents