I needed a mailing list manager for a new project, and, honestly, I'm a little sick of Mailman–it has tons of features I don't use, but one fundamental feature I'd like, archive indexing and searching, is grossly deficient (the only option, which has been maintained as a patch for the last 7 or 8 years, only really supports ht://Dig, which has been moribund for about that whole time)–so I decided to try something that might be no better, but at least was lightweight. So I installed mlmmj.
And then I discovered that all the documentation for how to configure it with postfix was absurdly complex, at least for my situation, where I was dedicating a whole subdomain (lists.gurave.org) to it.
So, here it is, my take on how to marry mlmmj to postfix. I have successfully subscribed one address to it so far, but there's no reason it has to be more trouble than this.
Step 1. Add an mlmmj transport to your postfix master.cf file:
mlmmj unix - n n - - pipe
flags=DORhu user=nobody argv=/usr/bin/mlmmj-recieve -L var/spool/mlmmj/${user}
Step 2. Set up your subdomain to use the new transport (this can be
set on an individual address basis using either regexes or individual
entries, but hell, everyone uses lists.foo.com
these days). It can
contain:
lists.gurave.org mlmmj:
Step 3. Configure postfix to handle the subdomain and use the transport file to route messages (and don't hand more than one to mlmmj at once):
mlmmj_destination_recipient_limit = 1
relay_domains = lists.gurave.org
transport_maps = hash:/etc/postfix/transport
Step 4. There is no Step 4. You're done. Seriously.
Of course, if I've missed something, I hope someone will let me know, but I don't see why it has to be any more than this.