-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathREADME
152 lines (111 loc) · 5.59 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
README mlmmj-1.3.0 May 25, 2017
This 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
independence.
The functionality:
· Archive
· Custom headers / footer
· Fully automated bounce handling (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 subscription
· VERP support
· Delivery Status Notification (RFC1891) support
· Rich, customisable texts for automated operations
To use mlmmj, do the following:
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
If you want to filter multipart/mime messages, pass the option
--enable-receive-strip to configure, and take a look at
contrib/receivestrip/README.
1) Configure a recipient delimiter. The default is to use '+', and 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/
The mlmmj TUNABLE "delimiter" configures this on a per list basis
NOTE: Using '-' as a delimiter is unlikely to work. Mlmmj uses '-' as its
own kind of minor delimiter. Of course, you also cannot use the delimiter
in your list names or you will encounter problems.
2) Create the mailinglist. There's a script, mlmmj-make-ml, 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. Following the example above they will look like this:
mlmmj-test: "|/usr/bin/mlmmj-receive -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
If you have lists more deeply nested below /var/spool/mlmmj, use
something like:
find /var/spool/mlmmj -mindepth 1 -maxdepth 1 -type d \
-exec /usr/bin/mlmmj-maintd -F -d {} \;
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 [email protected]
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: [email protected]
7) If you want every mail to have something like:
--
To unsubscribe send a mail to [email protected]
Just add what you want to a file named "footer" in the same dir as
"customheaders" (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 chosen
non-strict defaults, so depending on your BOFH rate you might want to tweak.
The defaults should be good for most people though.
Have fun!
Mads Martin Joergensen <mmj at mmj dot dk>
Morten K. Poulsen <morten at afdelingp dot dk>
Ben Schmidt <mail_ben_schmidt at yahoo dot com dot au>