Email lists with Mailman3

I recently gave a presentation to GTALUG (Greater Toronto Area Linux Users Group) on mailing lists, migrating from Mailman2 to Mailman3, whether it’s worthwhile, and the future of mailing lists.

The topic was not so much a How-To (although I did perform a live migration of their general list to the new platform for demo purposes), but rather a discussion about the features available, and computing resources required.


  • Visually pleasing
  • Interactive without full page reloads
  • Search inside the web-based archives!
  • Reply to messages inside web-based archives!
  • Can create new message thread in a browser
  • Can upvote messages: nice with massive lists
  • Shows thread and user activity
  • Modern, non-deprecated software (Python3 vs Python2)
  • Uses a proper database (PostgreSQL) instead of mbox and Python pickle files for all data storage
  • Has interactive Python shell for interacting with lists


  • Some features missing, especially commands issued via email
  • Complicated! How many web components are there?!?
    • Mailman3-web
    • Postorius
    • Django
    • Uswgi (universal server web gateway interface?)
    • HyperKitty (replaces Pipermail) – involved in web or just archiving? Archive page footer says “Powered by Hyperkitty” – what does that mean, exactly?
  • Xapian Haystack full text search (needs to be built) instead of PostgreSQL’s full text search – why bring in this extra module?
  • Resource usage: Q) how many Python instances can we fire up?!? A) Sixteen or more!
  • Default includes a Pyton instance for NNTP – freakin’ useless!
  • Requires ~1GB RAM for a … Mailing list?!? More than PostgreSQL, nginx, postfix, dovecot, sshd, postgrey, opendkim, etc. combined!

Some of the “Pros” will be considered “Cons” by those who find the complexity unnecessary or who question the value of interacting with a mailing list like a forum installation.

This is understandable, but I do love the search feature at least. One wonders why Python’s “xapian-haystack” is used instead of PostgreSQL’s.

The instructions default to using Python3 in a virtual environment (venv), which is rather nice, but there was no requirements.txt to aid in the installation process.

The xapian-haystack module had to be compiled from source, which required extra packages installed via apt install ...

The TL;DR summary was that, if your legacy messages are important, and if you’re uncomfortable running software that has been deprecated for over 4 years now (Python2), and you have a spare 1 GB RAM to throw at 1½ dozen Python interpreters, then you should upgrade.

If any of those are not reflective of your situation, and your list doesn’t get a lot of traffic… the questions become harder.

Python2 is no longer installed by default on modern distros. Mailman2 is not even in the repositories for Ubuntu 22.04, so it must be built from source. Or, perhaps run an out-dated OS just for the mailing list.

Finally, are mailing lists like the fax machines of the internet? Are most potential users looking for instant messaging instead of boring, old email?

Is it worth migrating your mailing list, hosted on Mailman2 to Mailman3, or just… letting it go and retiring it?

By admin

Linux admin, JS / React / Python / Perl developer.