Cover V10, I06
Article
Figure 1
Figure 2
Figure 3

jun2001.tar


Mailman

Ron McCarty

Despite the ever-increasing pace of the Internet evolution, many of us turn to email lists to supply professional advice, keep us up-to-date on news, and interact with others with common interests. Network administrators often need to support mailing lists within organizations. Majordomo (http://www.greatcircle.com/majordomo/) may be the mailing list manager that comes to mind for most admins; however, there are alternatives available such as Mailman (http://www.lists.org), which I will examine this month.

Mailman is a list manager written in the Python language (it requires version 1.52 or later) and is supported on most versions of UNIX. Mailman supports multiple list managers to ensure the systems administrator does not get caught up in the day-to-day running of the mailing lists. Mailman also supports a Web-based management for list managers and subscribers, as well as Web-based archiving.

Mailman can be downloaded from:

http://www.list.org/mailman.tar.gz
or, if you prefer ftp:

ftp://ftp.gnu.org/gnu/mailman/
The installation instructions covered here are for Red Hat 6.2, with other versions being very similar. I will, however, point out where Red Hat's features make the installation easier or more difficult. Apache (or another Web server) is required for the installation, and some Apache configuration is required and covered here.

Place the downloaded distribution into the directory structure where source code is stored. On Linux, I prefer /usr/local/src/. Unzip and untar the distribution:

cd /usr/local/src
gunzip mailman.tar.gz
tar xvf mailman.tar
Create a user named "mailman" and a group named "mailman". Red Hat uses a one-to-one mapping of users to groups, which means that each user has its own group by the same name. So, for Red Hat, we simply use:

/usr/sbin/useradd mailman
passwd mailman
The Mailman directory needs to be executable by everyone, and also needs to allow set group identification (set gid), so change the permissions:

chmod a+rx,g+ws /home/mailman/
Log in as user "mailman" to configure and install the software.

cd /usr/local/src/mailman-2.0.1/

./configure
./make install
The installation routine may report some errors concerning mv commands, which is fine -- the installation copies previous files to backup files with a .prev extension. After the installation, the directories used by Mailman are created in the following /home/mailman directory. Run:

/home/mailman/bin/check_perms -f
and then repeat the:

/home/mailman/bin/check_perms -f
To ensure all the problems were fixed with the first check_perms.

Apache Configuration

Now Apache needs to be configured. Add the entry:

Alias /pipermail/ "/home/mailman/archives/"
after the:

Alias /icons/ "/home/httpd/icons/"
entry, and add:

ScriptAlias /mailman/ "/home/mailman/cgi-bin/"
after the:

ScriptAlias /cgi-bin/ "/home/httpd/cgi-bin/"
entry in the Apache httpd.conf configuration, which is stored in /etc/httpd/conf/httpd.conf on a standard Red Hat 6.2 install.

The Alias entry (above) allows the public archives created by Mailman to be access through the Web directory /pipermail/. The ScriptAlias is necessary to allow Mailman's CGI scripts to be executed by Apache. As root, copy the graphics Mailman will need for proper display to Apache's icon directory:

cp /home/mailman/icons/* /home/httpd/icons/
and change the owner of the graphics:

chown root:root /home/httpd/icons/PythonPowered.png
chown root:root /home/httpd/icons/gnu-head-tiny.jpg
chown root:root /home/httpd/icons/mailman-large.jpg
chown root:root /home/httpd/icons/mailman.jpg  
Finally, restart Apache:

/etc/rc.d/init.d/httpd restart
As user Mailman, set up the crontab to execute the Mailman scripts:

cd /home/mailman/cron/
crontab crontab.in
and set the Mailman site password to "password" (use an appropriate password):

/home/mailman/bin/mmsitepassword password
As root, add aliases for user Mailman and Mailman-owner to point to the global Mailman administrator. For example:

mailman: ronald.mccarty@gte.net
mailman-owner: mailman
and run newaliases so that Sendmail knows about the changes. Sendmail uses the Sendmail-restricted shell (smrsh) for local mail delivery, so smrsh must be configured to allow execution of the wrapper by linking the wrapper to the /etc/smrsh/ directory:

ln -s /home/mailman/mail/wrapper /etc/smrsh/wrapper
You should now be able to access the Mailman Web front end by pointing your browser at the Web site directory /mailmain/admin/, as shown in Figure 1.

List Creation

To create a Mailman list, log in as Mailman and run the newlist command:

newlist
which will prompt you for the list owner and list password, and will print out the entries you need to add to the /etc/aliases file. It sends an email to the list owner after you hit enter, as directed by the newlist program.

Enter the email of the person running the list: ronald.mccarty@gte.net Initial netadmin password: Entry for aliases file:

## netadmin mailing list
## created: 11-Apr-2001 mailman
netadmin:           "|/home/mailman/mail/wrapper post netadmin"
netadmin-admin:     "|/home/mailman/mail/wrapper mailowner netadmin"
netadmin-request:   "|/home/mailman/mail/wrapper mailcmd netadmin"
netadmin-owner:     netadmin-admin
Hit "enter" to continue with netadmin owner notification. As root, enter the aliases printed out above to /etc/aliases, which would be:

netadmin:           "|/home/mailman/mail/wrapper post netadmin"
netadmin-admin:     "|/home/mailman/mail/wrapper mailowner netadmin"
netadmin-request:   "|/home/mailman/mail/wrapper mailcmd netadmin"
netadmin-owner:     netadmin-admin
and run newaliases to let Sendmail know about the new aliases. (If you mess up the list creation, use the rmlist command to remove the list. If a list is removed, do not forget to delete the aliases in /etc/aliases.)

Assuming all is configured correctly, the list owner you specified above will receive an email with the password and a URL to be used for list management. An example of the admin screen is shown in Figure 2. Additionally, the URL for users to access the system is also provided and is shown in Figure 3.

Besides the URL given for user access, users can also subscribe to the newly created list by sending an email to the netadmin-request mailing address with "subscribe" in the body. The commands that Mailman understands are similar to other mailing list programs, and the user can get a complete list of the commands by sending the command "help" in the message of the body to netadmin-request (or appropriate other list-request alias).

Miscellaneous Administration

Basic installation and list creation has been covered here. I recommend a strong understanding of Mailman if the software is planned for public mailing lists. A good method to learn the software is to go through each of the administrative screens and see how changes affect Mailman's operation. Pay close attention to the privacy settings to make spammers' lives as difficult as possible and keep them off of your lists, and to keep your subscribers' email addresses out of view.

Summary

Mailman is definitely worth considering for your mailing list needs. The Web front end for administrators and users with easy integration with Apache makes it one of the easiest mailing list programs to maintain. Check it out!

Ronald McCarty received his bachelor's degree in Computer and Information Systems at the University of Maryland's international campus at Schwaebisch Gmuend, Germany. After completing his degree, Ronald McCarty started his network career as network administrator at the Schwaebisch Gmuend campus. Ronald McCarty works for Lucent Technologies as a senior systems engineer on a customer team responsible for a major telecommunications carrier. He spends his free time with his two best friends in the world: his daughter, Janice, and his wife, Claudia. Ron can be reached at: ronald.mccarty@gte.net.