ezmlm is a set of programs to run mailing lists either from a web interface, via mail or from the command line. It can be used as an alternative to Mailman. This guide covers only the command line and the mail interface, not the web. It does not use a database but just flat files. For using a database and the web see the detailed docs.


For this guide you should be familiar with the basic concepts of

  • Mailing lists

  • Compiling a C program using Makefiles


When adding yourself to the list and test sending emails, be aware that GMail silently drops mails sent by yourself when they arrive again via the mailing list. One could think that there is a flaw in the uberspace qmail configuration sending out emails!


ezmlm was written by Fred Lindberg, Fred B. Ringel, and Bruce Guenter and released under GPLv2.


Step 1

Download the latest version of ezmlm from the website https://untroubled.org/ezmlm/, extract it and enter the directory:

[isabell@stardust ~] wget https://untroubled.org/ezmlm/archive/7.2.2/ezmlm-idx-7.2.2.tar.gz
[isabell@stardust ~] tar -xzf ezmlm-idx-7.2.2.tar.gz
[isabell@stardust ~] cd ezmlm-idx-7.2.2/
[isabell@stardust ezmlm-idx-7.2.2]

Step 2

Change the configuration by editing the conf-* files using a text editor. It is usually sufficient to change the following files: conf-bin to


conf-etc to


conf-lib to


conf-man to


Then run

[isabell@stardust ezmlm-idx-7.2.2] make
[isabell@stardust ezmlm-idx-7.2.2] make man
[isabell@stardust ezmlm-idx-7.2.2] ./ezmlm-test
getconfopt library:   OK
ezmlm-make:           OK
Using subdb plugin:   std
ezmlm-send:           OK
ezmlm-send (from):    OK
ezmlm-send trailer:   OK
omitbottom (-manage): OK
omitbottom (-get):    OK
Cleaning up...
[isabell@stardust ezmlm-idx-7.2.2]

The test call should show that everything is OK. Now create directories and install everything in the correct locations

[isabell@stardust ezmlm-idx-7.2.2] mkdir -p $HOME/{lib,etc}
[isabell@stardust ezmlm-idx-7.2.2] make install
[isabell@stardust ezmlm-idx-7.2.2]

You can run ezmlm-test again if you wish. Now also man ezmlm-make should work. If not, check the output of the respective commands for errors.

Configuration and Usage

General setup

ezmlm comes with templates for the administrative messages it sends. They are installed in the directory configured in conf-etc above. To change a message you can edit the files directly. To set a new default language change the default symbolic link to point to the subdirectory with the chosen language. It is advisable to keep the lists in a separate directory where ezmlm will create subdirectories for every single list:

[isabell@stardust ~] mkdir lists
[isabell@stardust ~]

Adding / removing a mailing list

Most administrative commands need to be done from the command line using different tools. In order to add a remotely administered list (-r) without an archive (-A) with the list owner owner@domain.org and the list address mylist@isabell.uber.space you can do:

[isabell@stardust ~] ezmlm-make -rA -5 owner@domain.org ~/lists/mylist ~/.qmail-mylist mylist isabell.uber.space
[isabell@stardust ~]

This will add the directory ~/lists/mylist where everything concerning this list will be stored and setup all necessary .qmail-mylist files.

To remove the list simply delete the directory ~/lists/mylist and the .qmail-mylist* files.

[isabell@stardust ~] rm -rf ~/lists/mylist ~/.qmail-mylist*
[isabell@stardust ~]

Subscribing / Unsubscribing

Users can either subscribe themselves to a list by writing an email to mylist-subscribe@isabell.uber.space or can be added from the command line:

[isabell@stardust ~] ezmlm-sub ~/lists/mylist user@otherdomain.org
[isabell@stardust ~]

To unsubscribe write an email to mylist-unsubscribe@isabell.uber.space or use:

[isabell@stardust ~] ezmlm-unsub ~/lists/mylist user@otherdomain.org
[isabell@stardust ~]

ezmlm can do many more things such as subscriber only lists, list moderation etc. Have a look at the man page for ezmlm-make or at the online documentation for details.

Written by: Michael Behrisch <oss@behrisch.de>