http://www.isp-control.net/ispcp/wiki/howto_mlmmj

Howto - Setup mailing lists with mlmmj

THIS IS WORK IN PROGRESS !!!

If you know what you are doing you are invited to check out the following steps.

Please report any bugs/hints/whatever in the following board thread: http://

This Howto explains how you install and setup the mailing list manager [mlmmj http://mlmmj.mmj.dk/].

Mlmmj is an attempt at implementing a mailing list manager with the same functionality as the brilliant ezmlm, but with a decent license and mail server independency.

1. Download mlmmj and install

Installation was tested with Debian Etch 4.0 and ispcp trunk (2007-05-12).

# mkdir /root/mlmmj
# cd /root/mlmmj
# wget http://mlmmj.mmj.dk/files/mlmmj-1.2.15.tar.gz
# tar xzf mlmmj-1.2.15.tar.gz
# cd mlmmj-1.2.15

You should read through the README before continue with installation

less README

Following command compiles mlmmj and installs it to /usr/local/bin/mlmmj-* afterwards:

# ./configure && make && make install

2. Recipient delimiter

Configure a recipient delimiter (for the commands like subscribe and unsubscribe). Many mailing list managers use '-' as the default. But currently mlmmj has a problem with '-'-delimiters when having listnames with a dash ('-') inside (like list-talk@yourdomain.tld or list-my-talk@yourdomain.tld). If you are going to have listnames without a dash (like mylist@yourdomain.tld) then you are safe with the '-'-delimiter.

The default for mlmmj is to use '+', but some Email clients (i.e. Webmailer) reject email addresses like list-talk+subscribe@yourdomain.tld as invalid. Also some spam filters might categorise those email addresses as spam.

A delimiter which seems to be safe under all circumstance is an underscore: '_'.

We need to change the recipient delimiter configuration at two places. One is the postfix main.cf and the other is in the "control" directory of each individual mlmmj based list. Latter will be shown later.

In postfix it's done by adding (or eventually modifying)

recipient_delimiter = _

to /etc/postfix/main.cf.

3. Create a list

Create a mailing list for testing purposes first is a good idea. This way you get used to mlmmj configuration without disturbing your real lists. You could name it i.e. "list-test" for the virtual domain "yourdomain.tld":

# mlmmj-make-ml.sh -L list-test -s /var/spool/mlmmj/yourdomain.tld -c nobody.nogroup

mlmmj-make-ml.sh will ask you following questions:

The Domain for the List? [] : yourdomain.tld The emailaddress of the list owner? [postmaster] : myaddress@domain.tld The path to texts for the list? [en] : de chown -R nobody.nogoup /var/spool/mlmmj/yourdomain.tld/list-test? [y/n]: y

4. crontab file

Prepare the crontab file for mlmmj maintenance

# vi /etc/cron.d/mlmmj
# /etc/cron.d/mlmmj: crontab fragment for mlmmj
# see man mlmmj-maintd

# Launch mlmmj-maintd every two hours  for each domain

... and add following line for each virtual domain for which you have already setup an mlmmj based mailing list:

0 */2 * * *  /usr/local/bin/mlmmj-maintd -F -d /var/spool/mlmmj/yourdomain.tld

5. postfix aliases

Setup an aliases file for mlmmj lists:

vi  cat /etc/postfix/ispcp/mlmmj.aliases
# /etc/postfix/ispcp/mlmmj.aliases
# aliases for the mailing list manager mlmmj
list-test:  "|/usr/local/bin/mlmmj-recieve -L /var/spool/mlmmj/yourdomain.tld/list-test"

6. postfix virtual aliases

Setup a virtual aliases file for mlmmj lists:

vi /etc/postfix/ispcp/mlmmj.virtual
# /etc/postfix/ispcp/mlmmj.virtual
# virtual aliases for the mailing list manager mlmmj
list-test@ yourdomain.tld list-test

7. Change postfix alias configuration

To make the newly created alias and virtual alias files aware to postfix, we need to change the appropriate attributes with in /etc/postfix/main.cf :

vi /etc/postfix/main.cf
alias_maps                        = hash:/etc/aliases,
                                    hash:/etc/postfix/ispcp/mlmmj.aliases,
                                    nis:mail.aliases

virtual_alias_maps      = hash:/etc/postfix/ispcp/aliases,
                          hash:/etc/postfix/ispcp/mlmmj.virtual

8. Create/update alias database files

Run following commands to create or update the mlmmj.aliases.db and mlmmj.virtual.db files

# postalias /etc/postfix/ispcp/mlmmj.aliases
# postmap /etc/postfix/ispcp/mlmmj.virtual

To be continued ...

(mlmmj testing, web gui)