On panther server you already have a user called "mailman" "uid=78" and a group called "mailman" "gid=78". Make sure that mailman user has a password and permission to log in. Open terminal and login as root:
mv /usr/share/mailman /usr/share/mailman.original mkdir /usr/share/mailman sudo chgrp mailman /usr/share/mailman sudo chmod a+rx,g+ws /usr/share/mailman
Login as user mailman:
cd /usr/share/mailman curl -O http://aleron.dl.sourceforge.net/sourceforge/mailman/mailman-2.1.4.tgz gnutar -xvzf mailman-2.1.4.tgz cd mailman-2.1.4 ./configure --prefix=/usr/share/mailman --with-cgi-gid=www --with-mail-gid=mailman make install cd .. bin/check_perms -f bin/check_perms -f
Open and add the following lines to the end of "mm_cfg.py" file:
cd Mailman open -e mm_cfg.py
DEFAULT_EMAIL_HOST = 'mail.domain.net'
DEFAULT_URL_HOST = 'www.domain.net'
add_virtualhost(DEFAULT_URL_HOST, DEFAULT_EMAIL_HOST)
cd .. bin/newlist mailman bin/config_list -i data/sitelist.cfg mailman
Create a password that can be used anywhere that individual user or mailing list administrator passwords are required.
bin/mmsitepass
cd mailman/cron crontab crontab.in
Login as root and change the following lines:
open -e /etc/httpd/httpd_mailman.conf
ScriptAlias /mailman/ "/usr/share/mailman/cgi-bin/"
Alias /pipermail/ "/usr/share/mailman/archives/public/"
<Directory "/usr/share/mailman/archives/public/">
Options FollowSymLinks MultiViews Indexes
AllowOverride None
Order allow,deny
Allow from all
</Directory>
sudo apachectl graceful
Open and uncomment the following line to enable web-based configuration of mailman:
open -e /private/etc/httpd/httpd.conf
# Include /etc/httpd/httpd_mailman.conf
Apple has already included startup file at "/System/Library/StartupItems/Mailman", but since we're not using apple's mail server we cannot use ServerAdmin app to start mailman except to administer the list.
open -e/private/etc/hostconfig
Flip "NO" to "YES": MAILMAN=-YES-
To start mailman manually via terminal (as root)
/usr/share/mailman/bin/mailmanctl start
/usr/share/mailman/bin/mailmanctl stop
/usr/share/mailman/bin/mailmanctl reload
/usr/share/mailman/bin/mmsitepass
Manage your lists from the web:
http://www.domain.com/mailman/create
http://www.domain.com/mailman/listinfo
Exim configure file:
add to main config section:
MAILMAN_HOME=/usr/share/mailman
MAILMAN_WRAP=MAILMAN_HOME/mail/mailman
MAILMAN_USER=mailman
MAILMAN_GROUP=mailman
add to routers (near the beginning):
mailman_router:
driver = accept
require_files = MAILMAN_HOME/lists/$local_part/config.pck
local_part_suffix_optional
local_part_suffix = -bounces : -bounces+* : \
-confirm+* : -join : -leave : \
-owner : -request : -admin
transport = mailman_transport
add to transports:
mailman_transport:
driver = pipe
command = MAILMAN_WRAP \
'${if def:local_part_suffix \
{${sg{$local_part_suffix}{-(\\w+)(\\+.*)?}{\$1}}} \
{post}}' \
$local_part
current_directory = MAILMAN_HOME
home_directory = MAILMAN_HOME
user = MAILMAN_USER
group = MAILMAN_GROUP