Final system set-up

Congratulations! You've installed the Mailman software. To get everything running you need to hook Mailman up to both your web server and your mail system.

  • If there is a README.yourMTA> file that describes your mail server (MTA), read it now. Some MTAs are more compatible with Mailman such that you can do automatic creation and removal of mailing lists, including through-the-web operations. Examples are Exim and Postfix. Setup instructions for specific MTAs are contained in these README files.

  • If you plan on running your MTA and web server on different machines, sharing Mailman installations via NFS, be sure that the clocks on those two machines are synchronized closely. You might take a look at the file Mailman/LockFile.py; the constant CLOCK_SLOP helps the locking mechanism compensate for clock skew in this type of environment.

  • Configure your web server to give $prefix/cgi-bin permission to run CGI scripts. You probably need to be root to do this.

    The line you should add might look something like one of the following (with the real absolute directory substituted for $prefix, of course), depending on your web server:

    ScriptAlias   /mailman/       $prefix/cgi-bin/
    Exec          /mailman/*      $prefix/cgi-bin/*
    

    Consult your web server's documentation for details.

  • IMPORTANT: You want to be very sure that the user id under which your CGI scripts run is not in the mailman group you created above, otherwise private archives will be accessible to anyone.

  • Copy the Mailman, Python, and GNU logos to a location accessible to your web server. E.g. with Apache, you've usually got an icons directory that you can drop the images into. You want to copy $prefix/icons/mailman.jpg, $prefix/icons/PythonPowered.png, and $prefix/icons/gnu-head-tiny.jpg to this directory.

    You then want to add a line to your $prefix/Mailman/mm_cfg.py file which sets the base URL for the logos. For example:

    IMAGE_LOGOS = '/images/'
    

    The default value for IMAGE_LOGOS is /icons/. Read the comment in Defaults.py.in for details.

  • Configure your web server to point to the Pipermail public mailing list archives: For example, in Apache:
    Alias /pipermail/ $varprefix/archives/public/
    

    where $varprefix is usually $prefix unless you've used the --with-var-prefix option to configure.

    Consult your web server's documentation for details. Also be sure to configure your web server to follow symbolic links in this directory, otherwise public Pipermail archives won't be accessible. For Apache users, consult the FollowSymLinks option.

    Now restart your web server.

  • Set up the crontab entries. Mailman runs a number of cron jobs for its basic functionality. In version of Mailman prior to 2.1alpha2, setting up your crontab was imperative to getting Mailman to work. With MM2.1alpha2 though, the qrunner is started from the bin/mailmanctl script (see below) instead of cron. You still want to set up crontab to run the ancillary scripts, but it isn't as crucial to getting Mailman working as it once was. Note that if you're upgrading from a previous version of Mailman, you'll want to install the new crontab, but be careful if you're running multiple Mailman installations on your site! Changing the crontab could mess with other parallel Mailman installations.

    If your version of crontab supports the -u option, you must be root to do this next step. Add $prefix/cron/crontab.in as a crontab entry by executing these commands:

    % cd $prefix/cron
    % crontab -u mailman crontab.in
    

    If you used the --with-ownername option, use that user name instead of mailman for the -u argument value. If your crontab does not support the -u option, try these commands:

    % su - mailman
    % cd $prefix/cron
    % crontab crontab.in
    

  • Start the Mailman qrunner daemon, by executing the following from the $prefix directory:
    % bin/mailmanctl start
    
    You can use the mailmanctl script as a typical Unix init script. BAW: add more here.

  • Add aliases for mailman and mailman-owner to the system's mail alias database. These aliases should point to whoever is ultimately responsible for the Mailman installation. Here are instructions for those running Sendmail:
    1. su to root.
    2. Assuming your email is fred@flintstone.com, add the following lines to the file /etc/aliases:
      mailman: fred@flintstone.com
      mailman-owner: mailman
      
    3. Some versions of sendmail require you to run the program newaliases explicitly.

    If you don't run sendmail, consult the documentation of your mail transport program for information on adding these aliases.