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.
|