Mailman 2.1.9 on TIGER (OS X 10.4+) Server or Client

It is necessary to have Xcode installed.

1. With root priviledge you will have to add "mailman" user and group.

 % niutil -create . /groups/mailman
 % niutil -createprop . /groups/mailman gid 78
 % niutil -createprop . /groups/mailman realname 'mailman'
 
 % niutil -create . /users/mailman
 % niutil -createprop . /users/mailman uid 78
 % niutil -createprop . /users/mailman gid 78
 % niutil -createprop . /users/mailman passwd '*'
 % niutil -createprop . /users/mailman realname 'GNU Mailman'

2. Backing up any existing mailman installation

 % mv /usr/share/mailman /usr/share/mailman.original
 % ln -s /usr/local/mailman /usr/share 

3. Create and preapare a directory for your new mailman

 % mkdir /usr/local/mailman
 % sudo chgrp mailman /usr/local/mailman
 % sudo chmod a+rx,g+ws /usr/local/mailman

4. Download and unpack:

 % curl -O http://easynews.dl.sourceforge.net/sourceforge/mailman/mailman-2.1.9.tgz
 % gnutar -xvzf mailman-2.1.9.tgz
 % cd mailman-2.1.9

5. Building and checking the installation

Be sure to correct "mail.domain.com" and "www.domain.com" in your ./configure line.

 % ./configure --prefix=/usr/local/mailman --with-cgi-gid=www --with-mail-gid=mailman \
--with-mailhost=mail.domain.com --with-urlhost=www.domain.com
 % make
 % make install
 % cd /usr/local/mailman/archives
 % chown www private
 % chmod o-x private
  
 % cd /usr/local/mailman
 % bin/check_perms -f
 % bin/check_perms -f 

6. Setup your webserver

Mailman installation on OS X Client:

Add the following line to your httpd.conf file.

Include /etc/httpd/httpd_mailman_2.1.9.conf

Create a file named "httpd_mailman_2.1.9.conf" with the following content and move it to /etc/httpd/

   ScriptAlias /mailman/ "/usr/local/mailman/cgi-bin/"
   Alias /pipermail/ "/usr/local/mailman/archives/public/"
   Alias /mailman_images/ "/usr/local/mailman/icons/"
   <Directory "/usr/local/mailman/archives/public/">
       AddDefaultCharset Off
       Options FollowSymLinks MultiViews Indexes
       AllowOverride None
       Order allow,deny
       Allow from all
   </Directory>

Mailman installation on OS X Server:

% open -e /private/etc/httpd/httpd.conf

find the following line:

# Include /etc/httpd/httpd_mailman.conf

Uncomment the line and edit to this:

Include /etc/httpd/httpd_mailman_2.1.8.conf

Content should be the following:

   ScriptAlias /mailman/ "/usr/local/mailman/cgi-bin/"
   Alias /pipermail/ "/usr/local/mailman/archives/public/"
   Alias /mailman_images/ "/usr/local/mailman/icons/"
   <Directory "/usr/local/mailman/archives/public/">
       AddDefaultCharset Off
       Options FollowSymLinks MultiViews Indexes
       AllowOverride None
       Order allow,deny
       Allow from all
   </Directory>

7. Exim Configure file

Add to main configuration section:

   MAILMAN_HOME=/usr/local/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

Restart Exim.

8. Open and add the following 5 lines with the correct host names at the end of "mm_cfg.py" file:

% open -e /usr/local/mailman/Mailman/mm_cfg.py


##################################################
DEFAULT_EMAIL_HOST = 'mail.domain.net'
DEFAULT_URL_HOST = 'www.domain.net'
MTA = None
IMAGE_LOGOS = '/mailman_images/'
add_virtualhost(DEFAULT_URL_HOST, DEFAULT_EMAIL_HOST)
VIRTUAL_HOSTS = {'www.examplel.com': 'examplel.com',
                 'www.example2.com': 'example2.com'}

Where syntax is {virt ":" real "," virt ":" real}

9. Create a site-wide mailing list, initial administrator passwords and start Mailman:

% /usr/local/mailman/bin/newlist mailman
% /usr/local/mailman/bin/mmsitepass
% cd /usr/local/mailman/cron/
% crontab -u mailman crontab.in
% /usr/local/mailman/bin/mailmanctl -s start

10. Manage your lists from the web:

http://www.domain.com/mailman/create
http://www.domain.com/mailman/listinfo

11. For OS X Client download and install Mailman Startup files:

Mailman_Startup

12. Start up on OS X Server is already installed to /System/Library/StartupItems/Mailman. Just open hostconfig

% open -e /private/etc/hostconfig

Make sure there is a line "MAILMAN=-YES-".

Also open up start-up file and correct all instances of
"/usr/share/mailman/bin/mailmanctl" to
"/usr/local/mailman/bin/mailmanctl"

% open -e /System/Library/StartupItems/Mailman/Mailman

Stop and start everything, or restart your server.