If you've ever tried to setup a mail server for mailing lists, you probably ran into a difficult choice : what mailing list manager should I use ?
There are actually not a lot of solutions out there that are open source and easy to use (and to install).
The usual suspects are Sympa (created by Renater), Majordomo, mailman or GroupServer (Other alternatives exist but are quite outdated or not documented enough). But all these require quite a handful of software to be installed on the target machine, which may not be ideal if you want to control the stack you're using and not install new packages just for a mailing list manager.
The GroupServer stack - Zope, in 2015, really ?
So, while searching for a relatively recently maintained no-brainer solution that didn't require any bizarre RDBMS or a specific Perl version, I stumbled accross Mlmmj which is a very simple yet powerful mailing list manager, and which latest release dates back to 2014 (see here).
The mlmmj logo on the website. Kudos for the designer.
What struck me is that it has no dependencies and it installs in a breathe with a simple :
apt-get install mlmmj
The only drawback with mlmmj is that it has no simple web interface. Both projects listed here are either dead or only propose a way to browse the archives but not manage them.
So I took a shot at creating a very simple open-source management interface for mlmmj.
I chose Node and used a couple of packages :
- Express as a global framework, with sessions and flash messages
- Consolidate & Nunjucks as the template engine
- Passportjs for the authentification
- Bootstrap for the frontend
With the interface, you can :
- manage the parameters easily
- change the list of subscribers
- browse the archives
I factored the whole documentation of tunables directly in the parameters page so you can access it while tuning the parameters, which is convenient.
A screenshot of the parameters page :
I may work on the archives section to improve it and add a search, and a better listing, but for now it does a pretty efficient job and allows me to control the parameters easily.
Tell me what you think ! cyril[at]foobarflies.io and of course feel free to fork and contribute.
PS : I also created a very simple init script for mlmmj here