Mailman: An easy-to-use open source mailing list manager
Like Majordomo, Mailman is an open source mailing list manager. But that is where the similarities end. From its straightforward installation to its Web-based interface, it’s clear why Mailman has become the courier of choice.
Mailman is an open source mailing list manager similar to Majordomo, with one important difference — usability. Mailman provides a Web-based interface for all users and list managers. Users can subscribe/unsubscribe and manage settings for their lists; list managers can completely administer the list via the Web.
The difference in the two apps, however, is evident right from installation. Anyone who has installed Majordomo knows it can be very difficult to get working. Mailman has its quirks but has nothing that can’t be overcome by following the documentation. Most organizations run Mailman on a Unix- or Linux-based system, but it is also possible to run Mailman on Windows. It is, after all, just C and Python. Prerequisites to running Mailman include: an MTA (e.g., Postfix, sendmail, or exim), a C compiler, and a Python interpreter. Mailman is mostly Python, but some of the Mailman binaries have C wrappers for security reasons.
Mailman’s superiority to Majordomo is apparent in every task a user, list manager, or site administrator takes on.
Most Linux distributions have package managers that make installing Mailman a snap. However, for customized installs, the source must be grabbed from the Mailman Web site. We had no major problems installing Mailman 2.1.5 from source after reading the “install” file included with the distribution. The basic steps are: Add a user and group ‘mailman’ to the system, create a directory for Mailman to live in, and untar. After the normal “./configure; make; make install”, running bin/check_perms is recommended to ensure everything has the correct permissions and user/group ownership.
The potential for having to do everything twice is great if you don’t pay attention to the –with-mail-gid option. During the configuration phase, this must be specified correctly to allow Mailman’s mail wrapper to send mail. The defaults are the list: [mailman other mail daemon]. If your mail server runs as postfix:postfix, for example, you must specify this with:
A few other minor tasks are necessary to configure Mailman — mostly setting Web site options in the mm_cfg.py file. The ‘install’ file contains the rest of the details, along with the Defaults.py file for all possible options you can use in mm_cfg.py.
The final stage in the install process is configuring the Web server for operation with Mailman. In Apache, this means creating an alias to tell the Web server where to go for Mailman scripts.
ScriptAlias /mailman/ $prefix/cgi-bin/
Afterward, the mailman directory should be accessible from your Web site.
Configuration and Administration
Configuring and administering lists is much less painful with Mailman. After the install is complete and correct, one last command-line task is necessary: Run $install_directory/bin/mmsitepass to define the global site administrator’s password.
Now, you’re ready to create the first mailing list. Go to http://yourself.domain/mailman/create.
Here, the beauty of Mailman is just beginning to rear its head. Creating a list is as simple as filling out the form, and clicking “Create List.” The person entered as the list administrator will receive an e-mail explaining how to log in and manage list settings. All tasks are done via the Web site, including adding users, removing users, configuring archives of the mailing list, and controlling spam.
More advanced features necessitate some tweaking on the initial set up. Mailman also requires an additional step to configure mailing lists: creating aliases. Aliases are required so your mail server knows how to deliver to Mailman. But don’t fret; this doesn’t have to be a manual process. Mailman can integrate itself with all the popular MTAs. In the mm_cfg.py file, simply specify something like: “MTA = ‘Postfix'”, and then run the $install_directory/bin/genaliases command. If you tell the MTA to include Mailman aliases in $install_directory/data/aliases, adding and removing lists becomes an effortless task.
Mailman may have a vast collection of advanced features, but configuring a simple list server doesn’t take much effort. Mailman also supports virtual mail domains, auto-responders, multiple list moderator capabilities, spam control, and a mail-to-news gateway. The mail-to-news gateway provides an excellent method for publishing a list on Usenet. Another popular Mailman feature is its archiving capabilities. Using Pipermail, Mailman creates a threaded view of all list communication that can be configured as public or private. For example, if you’ve ever searched Google for a problem with Linux, chances are you’ve run into Mailman archives more than once.
Mailman is now considered the most popular mailing list manager. Users no longer need to send Majordomo-style commands to the mail server asking to be subscribed. Mailman does allow this, but in general most users will be clicking on a link and filling in their e-mail address to subscribe to a mail list. Users can also choose to suspend mailings while they are on vacation, and even change delivery options, such as “daily digest.”
Majordomo cannot do this. Mailman’s superior interface for users and list managers makes it the most appealing open source list management software available. In fact, Mailman’s superiority to Majordomo is apparent in every task a user, list manager, or site administrator takes on.
Pros: It’s not Majordomo; Ease of use; User options via a Web interface; Administrator options are all accessible from the Web interface; Users can temporarily suspend delivery without unsubscribing.
Cons: Not designed to run on Windows; The only technical support available is through their mailing list.
Reviewed by: Charlie Schluting
Original Review Date: 03/15/2005
Original Review Version: 2.1.5