--- /dev/null
+Cookbook for the grml mailinglistsetup
+======================================
+
+Preface
+-------
+
+This is a short documentation for common tasks with the grml mailing list
+setup (mlmmj).
+
+Upstream docs
+-------------
+
+http://mlmmj.mmj.dk/[mlmmj Homepage]
+
+Configuration of lists
+----------------------
+
+Configuration of lists takes apart in the control directory of every list.
+This can be found in `/etc/mlmmj/lists/$list/control`. A full list of
+tunable options can be found in the file
+`/usr/share/doc/mlmmj/TUNABLES.gz`.
+
+Recipes
+-------
+
+Here are some common tasks:
+
+Add a new mailinglist
+~~~~~~~~~~~~~~~~~~~~~~~
+
+----------------------
+mlmmj-make-ml
+----------------------
+
+
+Subscribe somebody to a mailinglist
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+----------------------------
+/usr/bin/mlmmj-sub -L /var/spool/mlmmj/$list/ -a joe@domain.tld
+----------------------------
+
+Add custom headers to a mailinglist
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Just add your Headers to the file customheaders in the control
+directory of a list.
+
+.Add the custom header List-Id to list `foo`
+==================================
+`echo "List-Id funny list <foo.ml.grml.org>" >> /etc/mlmmj/lists/foo/control/customheaders`
+==================================
+
+Restrict allowed posters to a list
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+If you add a file `access` to the control directory you can control who is
+allowed to post to a list. Rules are parsed from top to down and are
+specified by a regex against the header of mail and the keyword *reject* or
+*deny*. If you add a *deny* to the end of the file everybody who is not
+explicitly allowed to post will be rejected. If you want to customize the
+reject mail that users get modify the file
+`/etc/mlmmj/lists/$list/text/access` the Macro *$listaddr$* will be
+replaced with the address of the list.
+
+.Deny all mails to a list with an exception for mails from foo@bar.de
+==============================
+allow ^From: .\*foo@bar.de.\*
+
+deny
+==============================
+
+
+.Reject all mails from bar@baz.de
+===============
+deny ^From: .\*bar@baz.de.\*
+===============
+
+[CAUTION]
+Every header can be forged, so don't rely to hard on this feature. If you
+really want to control all mails to a list use moderation.
+
+List Archives
+-------------
+
+Currently we use http://www.sourceforge.net/projects/hypermail[Hypermail]
+for archive generation. To get a new list archived the following steps have
+to be followed:
+
+. Subscribe the archive user. For traditional reasons this is the user
+*lurker*
++
+------------------------
+`/usr/bin/mlmmj-sub -L /var/spool/mlmmj/$list/ -a lurker@ml.grml.org`.
+------------------------
+
+. Tune the procmail file of the lurker user so that mails of the list get
+there own inbox file:
++
+-----------------
+:0 w
+* ^X-Mailing-List: <grml-live@ml.grml.org>.*
+grml-live
+-----------------
+
+. Copy `/home/lurker/conf/hg-commits.conf` to a new config
+. Adjust at least the following config options in the config:
+.. `mbox = /home/lurker/hg-commits` - set this to the mbox of the list
+.. `label = Mercurial commits changes for hg.grml.org` - informative
+description of the list
+.. `dir = /var/www/archive/hg-commits/` - where to generate the html files
+. If the archive should be mentioned on http://ml.grml.org[ml.grml.org] add
+it to `/var/www/archive/index.html`
+
+About this document
+-------------------
+
+(c) Michael Prokop <mika@grml.org> and Alexander Wirt <formorer@grml.org>; HTML version powered by link:http://www.methods.co.nz/asciidoc/[asciidoc].
+
+// vim: ft=asciidoc autoindent textwidth=75 formatoptions=tcqn