Import ezmlm 0.53
[ezmlm] / ezmlm.5
CommitLineData
5b62e993
MW
1.TH ezmlm 5
2.SH NAME
3ezmlm \- format of ezmlm directory
4.SH OVERVIEW
5An
6.B ezmlm
7directory,
8.IR dir ,
9stores information about an
10.B ezmlm
11mailing list.
12.B ezmlm-make
13creates
14.IR dir ;
15.B ezmlm-sub
16and
17.B ezmlm-unsub
18manipulate the subscriber list stored under
19.IR dir ;
20.B ezmlm-manage
21handles administrative requests automatically;
22.B ezmlm-send
23sends a message to all subscribers listed in
24.IR dir .
25.SH SUBSCRIBERS
26.I dir\fB/subscribers
27is a directory containing the subscriber list.
28.B ezmlm-manage
29allows automatic subscription if
30.I dir\fB/public
31exists.
32
33The list is hashed into 53 files, named
34.B @
35through
36.B t
37in ASCII.
38A nonexistent file is treated as an empty file.
39
40Each file contains a series of addresses.
41An address can be any string of non-NUL characters up to 400 bytes long.
42Each address is preceded by the letter T and followed by a NUL.
43
44For reliability,
45when an address is added to or removed from the mailing list,
46the relevant file is recreated under a temporary name
47inside
48.I dir\fB/subscribers
49and then moved into place.
50
51.I dir\fB/key
52is a binary file.
53.B ezmlm-manage
54uses
55.I dir\fB/key
56to create confirmation numbers.
57Anyone who can guess the contents of
58.I dir\fB/key
59can forge subscription requests.
60.B ezmlm-make
61does not put much effort into making
62.I dir\fB/key
63difficult to guess;
64for better security, you should add some random garbage to
65.IR dir\fB/key .
66.SH ARCHIVE
67.I dir\fB/archive
68is a directory containing messages previously sent to subscribers.
69.B ezmlm-send
70archives all new messages if
71.I dir\fB/archived
72exists.
73
74Messages sent to the mailing list are numbered from 1 upwards,
75whether or not they are archived.
76.I dir\fB/num
77is the number of messages sent so far.
78
79.I dir\fB/archive
80has subdirectories,
81each subdirectory storing up to 100 messages.
82Message number 100m+n, with n between 0 and 99, is stored in
83.IR dir\fB/archive/\fIm\fB/\fIn .
84For example, message number 15307 is stored in
85.IR dir\fB/archive/153/07 .
86
87.B ezmlm-manage
88will ignore message files without the owner-execute bit set.
89.B ezmlm-send
90turns on the owner-execute bit after safely writing the message to disk.
91.SH BOUNCES
92.I dir\fB/bounce
93is a directory containing bounce messages.
94.B ezmlm-return
95stores several types of files here.
96.SH "DELIVERY INSTRUCTIONS"
97.B ezmlm-make
98sets up four files to control mailing list deliveries.
99Each file is a series of delivery instructions in
100.B dot-qmail
101format.
102
103.I dir\fB/editor
104handles incoming mailing list submissions.
105.B ezmlm-make
106sets up
107.I dir\fB/editor
108to invoke
109.B ezmlm-send
110to immediately forward each message to all subscribers
111and then to run
112.BR ezmlm-warn .
113
114.I dir\fB/owner
115handles incoming messages for the mailing list's owner.
116.B ezmlm-make
117sets up
118.I dir\fB/owner
119to store messages in
120.I dir\fB/Mailbox
121and then to run
122.BR ezmlm-warn .
123
124.I dir\fB/bouncer
125handles incoming bounce messages.
126.B ezmlm-make
127sets up
128.I dir\fB/bouncer
129to invoke
130.B ezmlm-return
131and then
132.BR ezmlm-warn .
133
134.I dir\fB/manager
135handles incoming administrative requests.
136.B ezmlm-make
137sets up
138.I dir\fB/manager
139to invoke
140.B ezmlm-manage
141and then
142.BR ezmlm-warn .
143.SH TEXT
144.I dir\fB/text
145is a directory
146containing files sent out by
147.B ezmlm-manage
148in response to administrative requests:
149.TP 15
150.B top
151Introducing
152.BR ezmlm .
153This is placed at the top of each response.
154.TP
155.B bottom
156Explaining how to use
157.BR ezmlm .
158This is placed at the bottom of each response.
159.TP
160.B sub-confirm
161Explaining how to confirm a subscription request.
162.TP
163.B sub-ok
164Acknowledging successful subscription.
165.TP
166.B sub-nop
167Acknowledging a subscription request for an address already
168on the mailing list.
169.TP
170.B sub-bad
171Rejecting a bad subscription confirmation number.
172.TP
173.B unsub-confirm
174Explaining how to confirm an unsubscription request,
175and explaining how to figure out the subscription address.
176.TP
177.B unsub-ok
178Acknowledging successful unsubscription.
179.TP
180.B unsub-nop
181Acknowledging an unsubscription request for an address not
182on the mailing list.
183.TP
184.B unsub-bad
185Rejecting a bad unsubscription confirmation number.
186.TP
187.B get-bad
188Rejecting a bad archive retrieval request.
189.TP
190.B bounce-warn
191Pointing out that messages have bounced.
192.TP
193.B bounce-probe
194Pointing out that a warning message has bounced.
195.TP
196.B bounce-num
197Explaining that
198.B ezmlm-return
199has kept a list of bounced message numbers.
200.TP
201.B bounce-bottom
202Separating the bounce message.
203.PP
204.B ezmlm-manage
205replaces the line
206.B !A
207in any of these files
208with the name of the subscription address.
209It replaces the line
210.B !R
211in
212.B sub-confirm
213and
214.B unsub-confirm
215with the address that the subscriber must reply to.
216.SH "OUTGOING MESSAGE EDITING"
217.I dir\fB/headerremove
218is a list of bad header field names,
219one per line.
220.B ezmlm-send
221removes these header fields from all outgoing messages.
222.B ezmlm-make
223sets up
224.I dir\fB/headerremove
225to remove
226.BR Return-Path ,
227.BR Return-Receipt-To ,
228and
229.B Return-Path
230fields.
231
232.I dir\fB/headeradd
233is a list of new header fields.
234.B ezmlm-send
235adds these fields to every outgoing message.
236.B ezmlm-make
237sets up
238.I dir\fB/headeradd
239with no new fields.
240.SH MISCELLANY
241The first line of
242.I dir\fB/mailinglist
243is a line of text.
244.B ezmlm-send
245creates a new
246.B Mailing-List
247field, showing the contents of
248.IR dir\fB/mailinglist ,
249in every outgoing message.
250
251The first lines of
252.I dir\fB/outlocal
253and
254.I dir\fB/outhost
255give the outgoing name of the mailing list.
256These are used by
257.B ezmlm-manage
258and
259.B ezmlm-send
260to construct sender addresses for outgoing messages.
261
262The first lines of
263.I dir\fB/inlocal
264and
265.I dir\fB/inhost
266give the incoming name of the mailing list.
267These are used by
268.B ezmlm-manage
269to parse incoming envelopes.
270Normally
271.I inlocal
272and
273.I inhost
274are the same as
275.I outlocal
276and
277.IR outhost ,
278but sometimes they are different,
279with
280.I outlocal\fB@\fIouthost
281forwarded to
282.IR inlocal\fB@\fIinhost .
283
284If
285.I dir\fB/sublist
286exists,
287this mailing list is a sublist,
288redistributing messages from a parent mailing list.
289The first line of
290.I dir\fB/sublist
291is the name of the parent list.
292This affects the behavior of
293.BR ezmlm-send .
294
295.I dir\fB/lock
296is an empty file.
297Any program that reads or writes the subscriber list,
298or adds messages to the archive,
299locks
300.IR dir\fB/lock .
301
302.I dir\fB/Log
303is an advisory log of subscription and unsubscription actions.
304.B WARNING:
305.B Log
306is not protected against system crashes.
307Log entries may be missing or corrupted if the system goes down.
308.SH "SEE ALSO"
309ezmlm-list(1),
310ezmlm-make(1),
311ezmlm-manage(1),
312ezmlm-return(1),
313ezmlm-send(1),
314ezmlm-sub(1),
315ezmlm-unsub(1),
316ezmlm-warn(1),
317dot-qmail(5)