GNU Mailman
Tap a star to rate
What it is
GNU Mailman is free software for running mailing lists. The project's home page describes it as "free software for managing electronic mail discussion and e-newsletter lists," so it handles both many-to-many discussion lists and one-way newsletters. It is distributed under the GNU General Public License and written in Python. The home page lists two current stable versions: Mailman 3.3.10, released on 01-Oct-2024 under the name "Tom Sawyer," and the older Mailman 2.1.39, released on 13-Dec-2021. The site says "Mailman is integrated with the web, making it easy for users to manage their accounts and for list owners to administer their lists."
Mailman is software you install and run yourself, not a hosted service. You download it, connect it to your own mail server and web server, and manage every list and subscriber on your own machine. There is no price, no plan and no send limit set by the project: capacity depends on the server and mail setup you provide.
Core features
The home page sums up the feature set as "built-in archiving, automatic bounce processing, content filtering, digest delivery, spam filters, and more." The features page fills in the detail.
Lists can be created and removed through the web, "with automatic support depending on the MTA," meaning the mail transfer agent your server runs. List web pages and email notices can be shown in any of "nearly two dozen" supported languages, configurable per site, per list and per user. Members can register a real name, and Mailman supports personalized deliveries and "VERP-like message delivery for foolproof bounce detection," which lets it work out exactly which address bounced.
Members get "user controllable delivery options," such as choosing digest delivery. An "Urgent:" header lets an administrator bypass digests so a message reaches every member immediately, which suits announcements that cannot wait for the next digest.
Moderation and list administration
Much of Mailman's feature list is about keeping a list under control. Administrators get "flexible moderation and privacy controls," emergency moderation, auto-response controls, and web pages for handling administrative requests. Membership is managed through the web, and subscription invitations let an owner invite people rather than subscribe them outright.
Content filtering works on two levels. MIME-based filtering, "with demime/stripmime like options," strips or rejects attachment types an owner does not want on the list. Regular expression based topic filtering lets members receive only posts on the topics they care about. The features page also lists moderated newsgroup support.
Subscribers can manage their own subscriptions from the web, including unsubscribing and changing their personal options, which takes routine requests off the list owner's desk.
What Mailman 3 adds
The features page says Mailman 3 "adds lots of other features, including":
- virtual hosting support, with no list name restrictions, so one installation can serve lists on several domains
- a single user account to manage all subscription addresses
- a preferred address users can set as their default
- a flexible architecture for integration with your own site
- a REST-based API for the core system
- a "completely revamped and improved web user interface (Postorius) and default archiver (HyperKitty)"
How the Mailman 3 suite fits together
The developers page describes Mailman 3 as "a suite of tools that work together." Mailman Core is the list engine. Postorius is "the official web user interface." HyperKitty is "the archiver for GNU Mailman 3," where past messages can be read on the web. Mailman Client is "the official Python bindings for the REST API," which is the route for developers who want to create lists, manage members or connect Mailman to their own applications. A mailman-suite project provides "example configuration for a Django project including both Postorius and HyperKitty," a starting point for a full installation.
All Mailman 3 projects are developed under the mailman group on GitLab, use Git for version control, and accept issues and merge requests. Mailman 2.1 continues to be developed on Launchpad and uses Bazaar. The developers page says "Mailman 3 is under active development" and asks contributors to use the project hosting sites rather than send patches to the mailing lists.
Installing and running it
The documentation is organized by audience. Users learn how to subscribe and unsubscribe, change personal options and interact with the system. List managers get what the page calls "all the gory details" about setting up lists, what the options mean and how to manage membership. Site administrators get "all the information about installing Mailman, integrating it with your mail and web servers, setting list defaults, configuring virtual domains, and enabling various options for your list administrators," plus hints on tuning for performance. Translators get guidance on contributing a new language.
The documentation page notes that the Mailman 2.1 online documentation "is still under construction" and points to the wiki for more recent versions. It also recommends the University of Washington's documentation of its own Mailman installation as a general guide, links a HOWTO on using the Exim mailer with Mailman, and says the source distribution contains README files for issues specific to operating systems, mail transport agents and web servers.
Help and community
Support comes from the community rather than a vendor. The help page points first to the community-driven FAQ and wiki, which it says holds "the most up-to-date information about Mailman," and then to the discussion lists: mailman-users for Mailman 2.1 and mailman3-users for Mailman 3. It says "There are lots of very helpful and knowledgeable people on the lists who can help." Developers use the mailman-developers list, and some hang out on the #mailman IRC channel on Libera.Chat. Security issues go to mailman-security@python.org. A Code of Conduct covers the lists, wiki pages and IRC channels.
The home page names Abhilash Raj as lead developer, with core developers Barry Warsaw, Mark Sapiro, Aurélien Bompard, Florian Fuchs, Terri Oda and Stephen J. Turnbull. It thanks Canonical and Zope Corporation for past support of Barry's work, The Mail-Archive.com for a donation that kickstarted the directed GNU Mailman/Free Software Foundation donation fund, and cPanel for donating server resources for the project's GitLab CI system. Financial donors paid to send a core developer to PyCon 2015, and the site invites further donations.
Who it suits and who it does not
Mailman suits organizations that run their own mail and web servers and want lists that live entirely on their own infrastructure: discussion lists for a project or community, announcement lists and plain newsletters, with archives, digests and member self-service included at no license cost. Its moderation tools, per-user language settings and virtual hosting make it a practical choice for a host or institution running many lists for different groups, and the REST API and Python bindings let developers tie it into a site's own systems.
It is not a hosted service and it is not a marketing suite. You set up the mail server integration, the web server and the Django front end yourself, so someone with system administration skills needs to own it. The feature list centers on list management, delivery and moderation, and says nothing about drag-and-drop email design, automated campaign sequences or e-commerce integrations. A shop that wants designed promotional campaigns and sales automation will be looking for a different kind of tool.