Current Compilation Status
Easy Mailing List Manager for indimail-mta, qmail
This has been forked from ezmlm-idx Project Homepage to adapt it to work with indimail-mta's multi-queue architecture. The four 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.
- Configure mailing lists using indimail's web administration tool iwebadmin.
- 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, joe-sos@isp.net, 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 ew subscription and each new message safely to disk before it reports success to indimail-mta.
ezmlm doesn't mind huge mailing lists. Lists don't even have to fit into emory. ezmlm hashes the subscription list into a set of independent files so that it can handle subscription requests quickly. ezmlm uses mail for blazingly fast parallel SMTP deliveries.
ezmlm-idx originated as an add-on to ezmlm. It now exists as a complete package on its own, but can still be considered essentially as an extension 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. Prior to version 7, ezmlm-idx existed as an ezmlm source add-on, and as such did not work without ezmlm. ezmlm-idx tries to be compatible with ezmlm as much as possible in its usage, though the internal structure has changed considerably. ezmlm-idx also modifies the ezmlm subscriber database to be case insensitive to avoid many unsubscribe problems.
ezmlm-idx uses functions from libqmail library. libqmail uses GNU autotools. You need to haave 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 mysql80-server mysql80-client
Darwin
# port install autoconf libtool automake pkgconfig openssl mysql
# port update outdated
Arch Linux
# pacman -S --refresh --sysupgrade
# pacman -S --needed archlinux-keyring
# pacman -S base-devel diffutils coreutils openssl mysql
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 mysql-dev
$ cd /usr/local/src
$ git clone https://github.com/indimail/ezmlm-idx.git
$ cd /usr/local/src/ezmlm-idx/ezmlm-idx-x
$ ./default.configure
$ make
$ 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-idx 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-idx, 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)
The IDX patches add: Indexing, (Remote) Moderation, digest, make patches, multi-language, MIME, global interface, SQL database support.
Fred Lindberg lindberg@id.wustl.edu, Fred B. Ringel fredr@rivertown.net, Bruce Guenter bruce@untroubled.org, and many others