Current Compilation Status
ezmlm fork with support for indimail-mta's multi-queue architecture.
This has been forked to adapt it to work with indimail-mta's multi-queue architecture. The three major changes that this version has made after the fork are
- Ability to set environment variables in /etc/indimail/ezmlm/global_vars. You can create any file in this directory. The file name becomes the environment variable and the file content becomes the value of environment variable.
- New queue program ezmlm-queue which can use qmail-qmqpc to use QMQP protocol, qmail-multi to queue mails to indimail's multi-queue instance or qmail-queue to queue mails to any qmta / qmail / netqmail / notqmail instance.
- Use all common functions from libqmail library.
ezmlm is an easy-to-use, high-speed mailing list manager for qmail.
ezmlm lets users set up their own mailing lists within qmail's address hierarchy. A user, Joe, types ``ezmlm-make ~/SOS ~/.qmail-sos joe-sos isp.net'' and instantly has a functioning mailing list, [email protected], with all relevant information stored in a new ~/SOS directory.
ezmlm sets up joe-sos-subscribe and joe-sos-unsubscribe for automatic processing of subscription and unsubscription requests. Any message to joe-sos-subscribe will work; Joe doesn't have to explain any tricky command formats. ezmlm will send back instructions if a subscriber sends a message to joe-sos-request or joe-sos-help.
ezmlm automatically archives new messages. Messages are labelled with sequence numbers; a subscriber can fetch message 123 by sending mail to joe-sos-get.123. The archive format supports fast message retrieval even when there are thousands of messages.
ezmlm takes advantage of qmail's VERPs to reliably determine the recipient address and message number for every incoming bounce message. It waits ten days and then sends the subscriber a list of message numbers that bounced. If that warning bounces, ezmlm sends a probe; if the probe bounces, ezmlm automatically removes the subscriber from the mailing list.
ezmlm is easy for users to control. Joe can edit ~/SOS/text/* to change any of the administrative messages sent to subscribers. He can remove ~/SOS/public and ~/SOS/archived to disable automatic subscription and archiving. He can put his own address into ~/SOS/editor to set up a moderated mailing list. He can edit ~/SOS/{headeradd,headerremove} to control outgoing headers. ezmlm has several utilities to manually inspect and manage mailing lists.
ezmlm uses Delivered-To
header to stop forwarding loops, Mailing-List to protect other mailing lists against false subscription requests, and real cryptographic cookies to protect normal users against false subscription requests. ezmlm can also be used for a sublist, redistributing messages from another list.
ezmlm is reliable, even in the face of system crashes. It writes each new subscription and each new message safely to disk before it reports success to qmail.
ezmlm doesn't mind huge mailing lists. Lists don't even have to fit into memory. ezmlm hashes the subscription list into a set of independent files so that it can handle subscription requests quickly. ezmlm uses qmail for blazingly fast parallel SMTP deliveries.
ezmlm uses functions from libqmail library. libqmail uses GNU autotools. You need to have autoconf, automake, libtool and pkg config package. Follow the instructions below to have them installed in case you don't have them.
$ cd /usr/local/src
$ git clone https://github.com/indimail/libqmail.git
$ cd /usr/local/src/libqmail
$ ./default.configure
$ make
$ sudo make install-strip
(check version in libqmail/conf-version)
NOTES
For Darwin (Mac OSX), install MacPorts or brew. You can look at this document for installing MacPorts.
FreeBSD
# pkg install automake autoconf libtool pkgconf
Darwin
# port install autoconf libtool automake pkgconfig openssl
# port update outdated
Arch Linux
# pacman -S --refresh --sysupgrade
# pacman -S --needed archlinux-keyring
# pacman -S base-devel diffutils coreutils openssl
Gentoo Linux
# emaint -a sync
# emerge-webrsync
# emerge -a app-portage/eix
# eix-sync
# etc-update
Alpine Linux
# apk add gcc g++ make git autoconf automake libtool m4 sed
# apk add openssl-dev
The build below depends on several Makefiles. For the build to operate without errors, you need to run default.configure the first time and everytime after you do a make distclean
. If you don't run default.configure, you can replace make
with ./qmake
$ cd /usr/local/src
$ git clone https://github.com/indimail/ezmlm.git
$ cd /usr/local/src/ezmlm/ezmlm-x
$ ./default.configure
$ make or ./qmake
$ sudo make install-strip
Build Status on Open Build Service
You can get binary RPM / Debian packages at
If you want to use DNF / YUM / apt-get, the corresponding install instructions for the two repositories, depending on whether you want to install a stable or an experimental release, are
- Stable
- Experimental
- copr Releases. The copr repository can be enabled by running the command
$ sudo dnf copr enable cprogrammer/indimail
Currently, the list of supported binary distributions for ezmlm is
* Arch Linux
* SUSE
o openSUSE_Leap_15.4
o openSUSE_Leap_15.5
o openSUSE_Leap_15.6
o openSUSE_Tumbleweed
o SUSE Linux Enterprise 12
o SUSE Linux Enterprise 12 SP1
o SUSE Linux Enterprise 12 SP2
o SUSE Linux Enterprise 12 SP3
o SUSE Linux Enterprise 12 SP4
o SUSE Linux Enterprise 12 SP5
o SUSE Linux Enterprise 15
o SUSE Linux Enterprise 15 SP1
o SUSE Linux Enterprise 15 SP2
o SUSE Linux Enterprise 15 SP3
o SUSE Linux Enterprise 15 SP4
o SUSE Linux Enterprise 15 SP5
o SUSE Linux Enterprise 15 SP6
* Red Hat
o Fedora 39
o Fedora 40
o Fedora Rawhide
o Red Hat Enterprise Linux 7
o Red Hat Enterprise Linux 8 +
o Red Hat Enterprise Linux 9 +
o EPEL 8 +
o EPEL 9 +
o Scientific Linux 7
o CentOS 7
o CentOS 8
o CentOS 8 Stream
o CentOS 9 Stream
o CentOS 10 Stream
o RockyLinux 8
o RockyLinux 9
o OracleLinux 8
o OracleLinux 9
o AlmaLinux 8
o AlmaLinux 9
o AmazonLinux 2023
+: Some of the above Red Hat flavoured distributions are available
only on copr (RHEL 8, RHEL9, EPEL9, EPEL9)
* Debian
o Debian 10.0
o Debian 11.0
o Debian 12.0
* Ubuntu
o Ubuntu 18.04
o Ubuntu 20.04
o Ubuntu 22.04
o Ubuntu 23.04
o Ubuntu 24.04
* Mageia
o Mageia 8
o Mageia 9
NOTE: You can also build local binary packages. To generate RPM packages locally for all components refer to Create Local Binary Packages
For this forked version of ezmlm, you can contact on IRC or mailing list
- Matrix Invite Link #indimail:matrix.org
- IndiMail has an IRC channel on libera #indimail-mta
There are two Mailing Lists for IndiMail
- indimail-support - You can subscribe for Support here. You can mail indimail-support for support Old discussions can be seen here
- Archive at Google Groups. This groups acts as a remote archive for indimail-support and indimail-devel.
There is also a Project Tracker for IndiMail (Bugs, Feature Requests, Patches, Support Requests)
ezmlm is mailing list management software (MLM) by Daniel J. Bernstein. This version of ezmlm has been modified from the original to use re-usable functions from libqmail and work with indimail-mta.