Add mailinglist documentation
[grml-infrastructure.git] / ml-mmj
1 Cookbook for the grml mailinglistsetup
2 ======================================
3
4 Preface
5 -------
6
7 This is a short documentation for common tasks with the grml mailing list
8 setup (mlmmj). 
9
10 Upstream docs
11 -------------
12
13 http://mlmmj.mmj.dk/[mlmmj Homepage]
14
15 Configuration of lists
16 ----------------------
17
18 Configuration of lists takes apart in the control directory of every list. 
19 This can be found in `/etc/mlmmj/lists/$list/control`. A full list of
20 tunable options can be found in the file
21 `/usr/share/doc/mlmmj/TUNABLES.gz`. 
22
23 Recipes 
24 -------
25
26 Here are some common tasks: 
27
28 Add a new mailinglist
29 ~~~~~~~~~~~~~~~~~~~~~~~
30
31 ----------------------
32 mlmmj-make-ml
33 ----------------------
34
35
36 Subscribe somebody to a mailinglist
37 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
38 ----------------------------
39 /usr/bin/mlmmj-sub -L /var/spool/mlmmj/$list/ -a joe@domain.tld
40 ----------------------------
41
42 Add custom headers to a mailinglist
43 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
44
45 Just add your Headers to the file customheaders in the control 
46 directory of a list. 
47
48 .Add the custom header List-Id to list `foo` 
49 ==================================
50 `echo "List-Id funny list <foo.ml.grml.org>" >> /etc/mlmmj/lists/foo/control/customheaders` 
51 ==================================
52
53 Restrict allowed posters to a list
54 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
55
56 If you add a file `access` to the control directory you can control who is
57 allowed to post to a list. Rules are parsed from top to down and are
58 specified by a regex against the header of mail and the keyword *reject* or
59 *deny*. If you add a *deny* to the end of the file everybody who is not
60 explicitly allowed to post will be rejected. If you want to customize the
61 reject mail that users get modify the file
62 `/etc/mlmmj/lists/$list/text/access` the Macro *$listaddr$* will be
63 replaced with the address of the list. 
64
65 .Deny all mails to a list with an exception for mails from foo@bar.de
66 ==============================
67 allow   ^From: .\*foo@bar.de.\*
68
69 deny
70 ==============================
71  
72
73 .Reject all mails from bar@baz.de
74 ===============
75 deny    ^From: .\*bar@baz.de.\*
76 ===============
77
78 [CAUTION] 
79 Every header can be forged, so don't rely to hard on this feature. If you
80 really want to control all mails to a list use moderation. 
81
82 List Archives
83 -------------
84
85 Currently we use http://www.sourceforge.net/projects/hypermail[Hypermail]
86 for archive generation. To get a new list archived the following steps have
87 to be followed: 
88
89 . Subscribe the archive user. For traditional reasons this is the user
90 *lurker*
91 +
92 ------------------------
93 `/usr/bin/mlmmj-sub -L /var/spool/mlmmj/$list/ -a lurker@ml.grml.org`.
94 ------------------------
95
96 . Tune the procmail file of the lurker user so that mails of the list get
97 there own inbox file:
98 +
99 -----------------
100 :0 w
101 * ^X-Mailing-List: <grml-live@ml.grml.org>.*
102 grml-live
103 -----------------
104
105 . Copy `/home/lurker/conf/hg-commits.conf` to a new config 
106 . Adjust at least the following config options in the config:
107 .. `mbox = /home/lurker/hg-commits` - set this to the mbox of the list
108 .. `label = Mercurial commits changes for hg.grml.org` - informative
109 description of the list
110 .. `dir = /var/www/archive/hg-commits/` - where to generate the html files
111 . If the archive should be mentioned on http://ml.grml.org[ml.grml.org] add
112 it to `/var/www/archive/index.html`
113
114 About this document
115 -------------------
116
117 (c) Michael Prokop <mika@grml.org> and Alexander Wirt <formorer@grml.org>; HTML version powered by link:http://www.methods.co.nz/asciidoc/[asciidoc].
118
119 // vim: ft=asciidoc autoindent textwidth=75 formatoptions=tcqn