mlmmj 1.2.13 RC1 review

Download
by rbytes.net on

mlmmj project is an attempt at implementing a mailing list manager with the same functionality as the brilliant ezmlm, but with a de

License: MIT/X Consortium License
File size: 183K
Developer: Mads Martin Jorgensen
0 stars award from rbytes.net

mlmmj project 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.

Here are some key features of "mlmmj":
Archive
Custom headers / footer
Fully automated bouncehandling (similar to ezmlm)
Complete requeueing functionality
Moderation functionality
Subject prefix
Subscribers only posting
Regular expression access control
Functionality to retrieve old posts
Web-interface
Digests
No mail delivery subscription
VERP support
Delivery Status Notification (RFC1891) support

Usage:

0) Compile it if you're not using a binary package such as dpkg, rpm or a ports collection from a BSD or Gentoo. To compile, untar the tar-ball and do:

$ ./configure && make && make install

1) Make sure your mailserver accepts '+' as a recipient delimiter. In Postfix it's done by adding

recipient_delimiter = +

to /etc/postfix/main.cf. In Exim it can be done by adding

local_part_suffix = +*
local_part_suffix_optional

to the "userforward:" and the "localuser:" router in /etc/exim/exim.conf, and also add "local_part_suffix = +*" to the system_aliases function. Also make sure that exim will add the envelope from in the Return-Path: header.

There is a nice FAQ explaining recipient delimiter configuration here:

http://faqs.org/faqs/mail/addressing/

2) Create the mailinglist. There's a script, mlmmj-make-ml.sh, that will make a mailinglist for mlmmj. It is highly recommended to use this script to make the lists! What is does is described here:

In the case of a list called mlmmj-test below /var/spool/mlmmj it makes the following directories:

/var/spool/mlmmj/mlmmj-test/incoming
/var/spool/mlmmj/mlmmj-test/queue
/var/spool/mlmmj/mlmmj-test/queue/discarded
/var/spool/mlmmj/mlmmj-test/archive
/var/spool/mlmmj/mlmmj-test/text
/var/spool/mlmmj/mlmmj-test/subconf
/var/spool/mlmmj/mlmmj-test/unsubconf
/var/spool/mlmmj/mlmmj-test/bounce
/var/spool/mlmmj/mlmmj-test/control
/var/spool/mlmmj/mlmmj-test/moderation
/var/spool/mlmmj/mlmmj-test/subscribers.d
/var/spool/mlmmj/mlmmj-test/digesters.d
/var/spool/mlmmj/mlmmj-test/nomailsubs.d
/var/spool/mlmmj/mlmmj-test/requeue

NOTE: The mailinglist directory (/var/spool/mlmmj/mlmmj-test in our example) have to be owned by the user the mailserver writes as. On some Postfix installations Postfix is run by the user postfix, but still writes files as nobody:nogroup or nobody:nobody

3) Make the changes to your mailserver aliases that came as output from mlmmj-make-ml.sh. Following the example above they will look like this:

mlmmj-test: "|/usr/bin/mlmmj-recieve -L /var/spool/mlmmj/mlmmj-test"

NOTE: Don't forget newaliases.

4) Start mlmmj-maintd (remember full path when starting it!) or add it to crontab with -F switch. The recommended way for now is to run it via cron:

"0 */2 * * * /usr/bin/mlmmj-maintd -F -L /var/spool/mlmmj/mlmmj-test"

It should be started as root, as mlmmj-maintd will become the user owning the listdir (/var/spool/mlmmj/mlmmj-test), and log it's last maintenance run to listdir/mlmmj-maintd.lastrun.log.

If you have several lists below /var/spool/mlmmj you can use -d:
/usr/bin/mlmmj-maintd -F -d /var/spool/mlmmj

That's it! You probably want to go through the next steps too.

5) Subscribe some people

/usr/bin/mlmmj-sub -L /var/spool/mlmmj/mlmmj-test/ -a joe@domain.tld

etc.

6) If you want custom headers like X-Mailinglist, Reply-To: etc. just add a file called 'customheaders' in the list control/ directory like this:
$ cat /var/spool/mlmmj/mlmmj-test/control/customheaders
X-Mailinglist: mlmmj-test
Reply-To: mlmmj-test@domain.tld

7) If you want every mail to have something like:
--
To unsubscribe send a mail to coollist+unsubscribe@lists.domain.net

Just add what you want to a file named "footer" in the same dir as "customheader" (listdir/control/).

8) If you want a prefix on the subject, to make it look like this:
Subject: [mlmmj-test] how are we doing?
Simply do 'echo "[mlmmj-test]" > control/prefix

9) For having a moderated list, simply create a file called 'moderated' in the control/ directory. Moderators are added to a file called 'moderators' in the control/ dir as well.

10) Have a look at the file TUNABLES for runtime configurable things.

Tunables in include/mlmmj.h:

There's some time intervals for how mlmmj-maintd operates. I've choosen non-strict defaults, so depending on your BOFH rate you might want to tweak. The defaults should be good for most people though.

What's New in 1.2.12 Stable Release:
Subscriber moderation, thread list in digest email messages, support for qmail, French listtexts, updated German and English listtexts, and pagination functionality in the perl-admin Web interface.
Bugfixes in header unfolding, a bugfix in SMTP EOF handling, and a bugfix in quoted printable subject handling.

What's New in 1.2.13 RC1 Development Release:
This release adds optional moderation of all posts from non subscribers, support for a default list text directory, a list FAQ feature, and disabling of nomail and digest versions of a list.
It fixes requeue for lists with noarchive enabled, SMTP HELO FQDN for hosts that can't find themselves using gethostbyname(), and a Bourne Shell issue in mlmmj-make-ml.sh.

mlmmj 1.2.13 RC1 search tags