===== Configuring [[http://www.gnu.org/software/mailman/|Mailman]] for Ubuntu =====
Taken from [[http://freemars.org/howto/mailman.html]]
Draft - Started 17 December 2005
Released to the unsuspecting world - 21 December 2005
Latest minor revision - 24 August 2006 at 01:30 PM
Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License.
Software selected
Install
There is only one package you'll need to add - mailman. Use Synaptic Package Manager or apt-get to add it to your machine.
It's my belief the Ubuntu install files leave you with the wrong file ownerships, so if you haven't already opened a terminal window do so and become root
$ sudo -s (and enter your password)
Mailman includes a handy script to make check your permissions. It's in /usr/sbin/ so it should be on root's path.
# check-perms
- and note the massive problems. To fix permissions,
# check-perms -f
A bunch of changes scroll by, but did it get them all?
# check-perms -f
Nope; still errors. In fact, you need to
# cd /var/lib/mailman
# chown -R list:list *
Of course I'm using example.com for this HOWTO. Substitute your own domain name.
Mailman configuration files
The Mailman configuration files are in /etc/mailman. Use your favorite text editor to edit /etc/mailman/mm_cfg.py. You'll want to check/edit/add the following lines:
MTA=None # No MTA processing req'd for Ubuntu/virtual/postfix-to-mailman.py
IMAGE_LOGOS = '/icons/'
DEFAULT_EMAIL_HOST = 'example.com'
DEFAULT_URL_HOST = 'example.com'
I'm not sure if you need this line - can someone tell me?
DEB_LISTMASTER = 'postmaster@example.com'
Apache 2 config files are in /etc/apache2. The Apache authors think you should put anything that looks like a module in mods-available and mods-enabled. Go ahead and create a new file: /etc/apache2/mods-available/mailman.conf
ScriptAlias /mailman/ /usr/lib/cgi-bin/mailman/
ScriptAlias /cgi-bin/mailman/ /usr/lib/cgi-bin/mailman/
AllowOverride None
Options ExecCGI
Order allow,deny
Allow from all
Alias /pipermail/ /var/lib/mailman/archives/public/
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
Optional - pipermail is one of those directory names which hangs around for historical reasons but makes little sense to users. You might want to add a more sensible-sounding alias for the mailing list archives.
Alias /archives/ /var/lib/mailman/archives/public/
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
Now add a symlink to this file so Apache will use your new Mailman aliases the next time it starts:
# cd /etc/apache2/mods-enabled
# ln -s /etc/apache2/mods-available/mailman.conf mailman.conf
All your configuration files are now set. Activate everything by restarting your services:
# /etc/init.d/apache2 restart
# /etc/init.d/postfix reload
# /etc/init.d/mailman start
Create your first list
Mailman doesn't have anything to do until there is at least one list for it to act on, so let's make one:
# newlist mailman
You'll be asked for an administrator email address - give it yours - and a password. If all goes well you should immediately get an email welcoming you to your new list. The email will have a URL where you can go and experiment with the web-based mailman configuration. There's just one thing that won't work -- emails sent to the list will not work. On to the final section of this howto.
Adding MySQL aliases
If you've installed phpmyadmin as Ivar suggests you can use a GUI interface, otherwise you'll edit your MySQL database through the command line. Insert the following entries into the aliases table of the maildb database:
mail destination
mailman@example.com mailman@lists.example.com
mailman-admin@example.com mailman-admin@lists.example.com
mailman-bounces@example.com mailman-bounces@lists.example.com
mailman-confirm@example.com mailman-confirm@lists.example.com
mailman-join@example.com mailman-join@lists.example.com
mailman-leave@example.com mailman-leave@lists.example.com
mailman-owner@example.com mailman-owner@lists.example.com
mailman-request@example.com mailman-request@lists.example.com
mailman-subscribe@example.com mailman-subscribe@lists.example.com
mailman-unsubscribe@example.com mailman-unsubscribe@lists.example.com
Your 'mailman' list should be operational.