Wanna be a Mailman?
The following is a mini-Howto on installing and setting up the mailman, http://www.list.org mailing list server.
It’s benefits include a web based interface to list member accounts and to archives either for the public or private for list members only.
A - INSTALLATION
1 - Download the source located at one of the available locations found at http://www.list.org/download.html and save to your favorite dumping ground and unpack.
2 - Create a user and group w/ the name mailman.
3 - If you are sticking w/ defaults, create the directory /usr/local/mailman and give it the appropriate permissions.
# mkdir /usr/local/mailman
# chown mailman.mailman
# chmod 2775 /usr/local/mailman
4 - Change to the mailman source directory and check out the configure script help info, ./configure --help and also the README.* files that apply to you. In my case, I ran to the following:
$ ./configure --with-mail-gid=nogroup --with-cgi-gid=apache --with-mailhost=host.domain.local --with-urlhost=host.domain.local
This tells mailman what group the mail application is run as, what group the cgi scripts are run as, the hostname added to mailing list names and the hostname part of the URL for the mailman web based tools.
5 - Assuming configure has completed successfully, proceed with compiling the source.
# make && make install
B - CONFIGURATION
1 - Configure Apache to allow mailman’s web based interface to work.
Your Apache config must be edited to allow web based access. To allow this, the following should be added to the appropriate Apache config file:
ScriptAlias /mailman /usr/local/mailman/cgi-bin/
<directory /usr/local/mailman/cgi-bin>>
Order Deny,Allow
Allow from all
Options ExecCGI +FollowSymLinks
</directory>
Alias /pipermail/ /usr/local/mailman/archives/private/
<directory /usr/local/mailman/archives>
Options +FollowSymLinks
Order Deny,Allow
Allow from all
</directory>
After this has been done, restart your Apache daemon, e.g. # service httpd restart
2 - Setup the cron file for mailman to perform scheduled tasks, such as
- Managing archives
- retrying failed messages
- mail password reminders to list members
This can be done by issuing the two following commands,
# cd /var/mailman/cron
# crontab -u mailman crontab.in
3 - Edit the default files, mm_cfg.py and Defaults.py
# cd /usr/local/mailman/Mailman
# vi mm_cfg.py
Add the following lines:
DEFAULT_HOST_NAME = ‘host.domain.local’
DEFAULT_URL = ‘https://host.domain.local/mailman/’
Also, if you wish your lists not to be advertised, i.e. shown on the listinfo page, add the following:
DEFAULT_LIST_ADVERTISED = No
Defaults.py
# cd /usr/local/mailman/Mailman
# vi Defaults.py
IMAGE_LOGOS = 0
DEFAULT_EMAIL_HOST = ‘host.domain.local’
DEFAULT_URL_HOST = host.domain.local”
DEFAULT_MAX_MESSAGE_SIZE = 500 # KB
DEFAULT_GENERIC_NONMEMBER_ACTION = 3 #3 = Discard
DEFAULT_SUBSCRIBE_POLICY = 2 # 2 = admin approval to subscribe
4 - Create the default mailmain mailing list.
# cd /usr/local/mailman
# bin/newlist mailman
Enter the email address of the person running the list:
Initial test password:
5 - Configure your SMTP server, in this case it’s Postfix by adding the following lines to your aliases file.
mailman: "|/usr/local/mailman/mail/mailman post mailman"
mailman-admin: "|/usr/local/mailman/mail/mailman admin mailman"
mailman-bounces: "|/usr/local/mailman/mail/mailman bounces mailman"
mailman-confirm: "|/usr/local/mailman/mail/mailman confirm mailman"
mailman-join: "|/usr/local/mailman/mail/mailman join mailman"
mailman-leave: "|/usr/local/mailman/mail/mailman leave mailman"
mailman-owner: "|/usr/local/mailman/mail/mailman owner mailman"
mailman-request: "|/usr/local/mailman/mail/mailman request mailman"
mailman-subscribe: "|/usr/local/mailman/mail/mailman subscribe mailman"
mailman-unsubscribe: "|/usr/local/mailman/mail/mailman unsubscribe mailman"
Then run the following to have Postfix see the changes.
# cd /etc/postfix
# postalias aliases
# postfix stop
# postfix start
C - USING MAILMAN
1 - Point your browser of choice to http://host.local.domain/mailman/admin/mailman/ to see the administrative pages for your new list. From here you can make many configuration changes, which is outside the scope of this mini-howto.
2 - Point your mailing list members to http://host.local.domain/mailman/listinfo/mailman for them to see their available options.
3 - You can check various logs at /usr/local/mailman/logs. If you have any problems, some valuable info may be found here.
4 - More specific documentation can be found at http://www.list.org/docs.html.
Well, this is somewhat terse and is also a first draft, so an error or two may exist, but hopefully it may help someone.
Enjoy….