Commit | Line | Data |
---|---|---|
5b62e993 MW |
1 | .TH ezmlm 5 |
2 | .SH NAME | |
3 | ezmlm \- format of ezmlm directory | |
4 | .SH OVERVIEW | |
5 | An | |
6 | .B ezmlm | |
7 | directory, | |
8 | .IR dir , | |
9 | stores information about an | |
10 | .B ezmlm | |
11 | mailing list. | |
12 | .B ezmlm-make | |
13 | creates | |
14 | .IR dir ; | |
15 | .B ezmlm-sub | |
16 | and | |
17 | .B ezmlm-unsub | |
18 | manipulate the subscriber list stored under | |
19 | .IR dir ; | |
20 | .B ezmlm-manage | |
21 | handles administrative requests automatically; | |
22 | .B ezmlm-send | |
23 | sends a message to all subscribers listed in | |
f8beb284 MW |
24 | .I dir |
25 | and also maintains a message archive and message subject index if the list | |
26 | is configured to do so. | |
27 | .B ezmlm-reject | |
28 | rejects messages that have an empty subject, or a subject consisting of | |
29 | only a command word; | |
30 | .B ezmlm-return | |
31 | handles bounces; | |
32 | .B ezmlm-warn | |
33 | warns users for which messages bounce and eventually removes them from | |
34 | the subscriber list. | |
35 | .B ezmlm-idx | |
36 | can create a subject index from an existing list archive. | |
37 | .B ezmlm-get | |
38 | manages message, index, and thread retrieval from the archive, as well | |
39 | as the generation of message digests; | |
40 | .B ezmlm-cron | |
41 | provides a restricted interface to cron for the generation of | |
42 | digest generation trigger messages; | |
43 | .B ezmlm-store | |
44 | queues messages of moderated lists and sends a moderation request to | |
45 | the moderator(s); | |
46 | .B ezmlm-moderate | |
47 | processes moderation requests to accept the queued message to the list | |
48 | via | |
49 | .B ezmlm-send, | |
50 | or to return the message to the sender; | |
51 | .B ezmlm-clean | |
52 | cleans up the moderation queue and returns to the sender | |
53 | any messages that have timed-out; | |
54 | .B ezmlm-gate | |
55 | posts messages that come from a SENDER in an address database, and sends | |
56 | remaining messages out for moderation; | |
57 | .B ezmlm-check | |
58 | is used to diagnose problems with ezmlm mailing list configuration; | |
59 | .B ezmlm-issub | |
60 | and | |
61 | .B ezmlm-issubn | |
62 | determine if a SENDER is a subscriber or a member of a | |
63 | collection of addresses; | |
64 | .B ezmlm-tstdig | |
65 | determines if it is time to create a new digest based on the number and | |
66 | volume of messages and the amount of time that has passed since the last | |
67 | digest was issued; | |
68 | .B ezmlm-request | |
69 | can be used to answer | |
70 | .B ezmlm | |
71 | commands in the subject line easing migration from other mailing list | |
72 | managers. It can also function as a global interface mimicking | |
73 | the interface of other mailing list manager. | |
74 | .B ezmlm-glmake | |
75 | can set up the global interface, and | |
76 | .B ezmlm-glconf | |
77 | can create a configuration file for the global interface from your lists. | |
5b62e993 MW |
78 | .SH SUBSCRIBERS |
79 | .I dir\fB/subscribers | |
80 | is a directory containing the subscriber list. | |
81 | .B ezmlm-manage | |
82 | allows automatic subscription if | |
83 | .I dir\fB/public | |
84 | exists. | |
85 | ||
86 | The list is hashed into 53 files, named | |
87 | .B @ | |
88 | through | |
89 | .B t | |
90 | in ASCII. | |
91 | A nonexistent file is treated as an empty file. | |
92 | ||
93 | Each file contains a series of addresses. | |
94 | An address can be any string of non-NUL characters up to 400 bytes long. | |
95 | Each address is preceded by the letter T and followed by a NUL. | |
96 | ||
97 | For reliability, | |
98 | when an address is added to or removed from the mailing list, | |
99 | the relevant file is recreated under a temporary name | |
100 | inside | |
101 | .I dir\fB/subscribers | |
102 | and then moved into place. | |
103 | ||
104 | .I dir\fB/key | |
105 | is a binary file. | |
106 | .B ezmlm-manage | |
107 | uses | |
108 | .I dir\fB/key | |
109 | to create confirmation numbers. | |
110 | Anyone who can guess the contents of | |
111 | .I dir\fB/key | |
112 | can forge subscription requests. | |
113 | .B ezmlm-make | |
114 | does not put much effort into making | |
115 | .I dir\fB/key | |
116 | difficult to guess; | |
117 | for better security, you should add some random garbage to | |
118 | .IR dir\fB/key . | |
119 | .SH ARCHIVE | |
120 | .I dir\fB/archive | |
121 | is a directory containing messages previously sent to subscribers. | |
122 | .B ezmlm-send | |
123 | archives all new messages if | |
124 | .I dir\fB/archived | |
f8beb284 MW |
125 | exists. If |
126 | .I dir\fB/indexed | |
127 | exists, | |
128 | .B ezmlm-send | |
129 | also maintains a message subject and author index. | |
5b62e993 MW |
130 | |
131 | Messages sent to the mailing list are numbered from 1 upwards, | |
132 | whether or not they are archived. | |
133 | .I dir\fB/num | |
f8beb284 MW |
134 | is the number of messages sent so far followed by ':', followed by the |
135 | cumulative amount of message body that has passed | |
136 | .B ezmlm-send | |
137 | stored as kbytes * 4 (4 corresponds to 1kb). | |
5b62e993 MW |
138 | |
139 | .I dir\fB/archive | |
140 | has subdirectories, | |
141 | each subdirectory storing up to 100 messages. | |
142 | Message number 100m+n, with n between 0 and 99, is stored in | |
143 | .IR dir\fB/archive/\fIm\fB/\fIn . | |
144 | For example, message number 15307 is stored in | |
145 | .IR dir\fB/archive/153/07 . | |
f8beb284 MW |
146 | The message index is stored in the file |
147 | .B index | |
148 | in the same subdirectory of | |
149 | .I dir\fB/archive | |
150 | holding the corresponding messages. | |
151 | Thus, the subject index contains up to 100 entries. | |
152 | ||
153 | The subject index contains message subjects that are normalized so that | |
154 | the original message and all replies have the same entry. The subject index | |
155 | is used for advanced message retrieval functions. For safety, the subject | |
156 | index is created under a temporary name | |
157 | inside | |
158 | .I dir\fB/archive | |
159 | and then moved into place. | |
5b62e993 MW |
160 | |
161 | .B ezmlm-manage | |
162 | will ignore message files without the owner-execute bit set. | |
163 | .B ezmlm-send | |
164 | turns on the owner-execute bit after safely writing the message to disk. | |
f8beb284 MW |
165 | |
166 | .B ezmlm-make | |
167 | by default adds | |
168 | .B ezmlm-get | |
169 | to | |
170 | .I dir\fB/manager | |
171 | to handle | |
172 | .I \-get, \-index, | |
173 | and | |
174 | .I \-thread | |
175 | requests. If | |
176 | .B ezmlm-make | |
177 | is invoked with a | |
178 | .I digcode | |
179 | command line argument, digest creation | |
180 | is enabled by putting this argument on the | |
181 | .B ezmlm-get | |
182 | command line. | |
5b62e993 MW |
183 | .SH BOUNCES |
184 | .I dir\fB/bounce | |
185 | is a directory containing bounce messages. | |
186 | .B ezmlm-return | |
187 | stores several types of files here. | |
188 | .SH "DELIVERY INSTRUCTIONS" | |
189 | .B ezmlm-make | |
190 | sets up four files to control mailing list deliveries. | |
191 | Each file is a series of delivery instructions in | |
192 | .B dot-qmail | |
193 | format. | |
194 | ||
195 | .I dir\fB/editor | |
196 | handles incoming mailing list submissions. | |
197 | .B ezmlm-make | |
198 | sets up | |
199 | .I dir\fB/editor | |
200 | to invoke | |
201 | .B ezmlm-send | |
202 | to immediately forward each message to all subscribers | |
203 | and then to run | |
204 | .BR ezmlm-warn . | |
205 | ||
206 | .I dir\fB/owner | |
207 | handles incoming messages for the mailing list's owner. | |
208 | .B ezmlm-make | |
209 | sets up | |
210 | .I dir\fB/owner | |
211 | to store messages in | |
212 | .I dir\fB/Mailbox | |
213 | and then to run | |
214 | .BR ezmlm-warn . | |
215 | ||
216 | .I dir\fB/bouncer | |
217 | handles incoming bounce messages. | |
218 | .B ezmlm-make | |
219 | sets up | |
220 | .I dir\fB/bouncer | |
221 | to invoke | |
f8beb284 MW |
222 | .BR ezmlm-return . |
223 | .B ezmlm-warn | |
224 | is no longer invoked here due to the load it places on systems with many | |
225 | large lists with many bounces. | |
5b62e993 MW |
226 | |
227 | .I dir\fB/manager | |
228 | handles incoming administrative requests. | |
229 | .B ezmlm-make | |
230 | sets up | |
231 | .I dir\fB/manager | |
232 | to invoke | |
f8beb284 MW |
233 | .BR ezmlm-get , |
234 | .BR ezmlm-manage , | |
5b62e993 MW |
235 | and then |
236 | .BR ezmlm-warn . | |
f8beb284 MW |
237 | |
238 | .I dir\fB/moderator | |
239 | handles incoming message | |
240 | .I accept | |
241 | and | |
242 | .I reject | |
243 | requests for moderated lists. | |
244 | .B ezmlm-make | |
245 | sets up | |
246 | .I dir\fB/moderator | |
247 | to invoke | |
248 | .BR ezmlm-moderate , | |
249 | and .BR ezmlm-clean . | |
250 | .SH DIGESTS | |
251 | .B ezmlm-get | |
252 | can create digests if it is invoked from the command line, from | |
253 | .IR dir\fB/editor , | |
254 | or from | |
255 | .IR dir\fB/manager . | |
256 | The program functions in slightly different ways in these 3 settings (see | |
257 | .BR ezmlm-get(1) ). | |
258 | ||
259 | To enable automatic digests for a mailing list, use the | |
260 | .B ezmlm-make \-d | |
261 | switch. To also enable the generation of digests at specific times dictated | |
262 | by mailed trigger messages, a | |
263 | .I digcode | |
264 | should be specified on the | |
265 | .B ezmlm-get | |
266 | command line. | |
267 | This can be done by specifying | |
268 | .I digcode | |
269 | as a fifth argument to | |
270 | .B ezmlm-make | |
271 | when setting up the list. | |
272 | .I digcode | |
273 | must be alphanumeric and is case-insensitive. | |
274 | ||
275 | To generate trigger messages, use | |
276 | .B ezmlm-cron(1) | |
277 | as an interface to | |
278 | .B crond(8) | |
279 | or use | |
280 | .B crond | |
281 | directly. | |
282 | ||
283 | .I dir\fB/num | |
284 | contains the number of the last message processed, followed by ':' and a | |
285 | number that is increased by 1 for each 256 bytes of message body text | |
286 | processed. The latter number is used by | |
287 | .B ezmlm-tstdig | |
288 | to determine if a new digest is due. | |
289 | ||
290 | .I dir\fB/dignum | |
291 | contains the contents of | |
292 | .I dir\fB/num | |
293 | at the time of the last regular digest creation, followed by a ':', | |
294 | followed by a timestamp. | |
295 | It is updated after each regular digest is sent. | |
296 | ||
297 | .I dir\fB/digissue | |
298 | contains the issue number of the last regular digest. It is incremented | |
299 | for each regular digest sent. | |
300 | ||
301 | The following user crontab entry (all on one line) | |
302 | generates a digest of the list | |
303 | .I list@host.domain | |
304 | at 1600 every day: | |
305 | ||
306 | .EX | |
307 | 00 16 * * * /var/qmail/bin/qmail-inject list-dig.digcode | |
308 | .EE | |
309 | ||
310 | Alternatively, | |
311 | .B ezmlm-cron | |
312 | can be used: | |
313 | ||
314 | .EX | |
315 | % ezmlm-cron -t 16:00 list@host digcode | |
316 | .EE | |
317 | ||
318 | .B ezmlm-get | |
319 | can also be run from the shell: To generate a digest to | |
320 | .I list-digest@host | |
321 | from the list housed in | |
322 | .IR ~joe/list : | |
323 | ||
324 | .EX | |
325 | % ezmlm-get ~joe/list | |
326 | .EE | |
327 | ||
328 | Like other | |
329 | .B ezmlm-get | |
330 | replies, digest can be sent in several formats. See | |
331 | .B ezmlm-get(1) | |
332 | for more info. | |
333 | .SH MODERATION | |
334 | There are three aspects of moderation: moderation of posts, moderation | |
335 | of subscriptions, and "remote administration", i.e. giving the | |
336 | moderator the right to (un)subscribe any user. | |
337 | .B ezmlm | |
338 | handles these three aspects separately. The two first aspects enhance | |
339 | security, while the third decreases security, but makes list administration | |
340 | considerably easier. By default, the moderator database is the same for all | |
341 | three functions. While "remote administration" and subscription moderation | |
342 | always use the same database, the moderators for message moderation can | |
343 | be different. | |
344 | ||
345 | Even with subscription moderation, the user has to verify the request. This | |
346 | is to ensure that the user initiating the request really controls the address. | |
347 | .B ezmlm-manage | |
348 | options exist to disable the user handshake, which may be useful in some | |
349 | circumstances. | |
350 | ||
351 | For moderation options, the moderators are by stored in a subscriber | |
352 | list in | |
353 | .IR moddir\fB/subscribers . | |
354 | By default | |
355 | .I moddir | |
356 | is | |
357 | .IR dir\fB/mod . | |
358 | ||
359 | Moderators can be added and removed with: | |
360 | ||
361 | .EX | |
362 | .B ezmlm-sub | |
363 | .I moddir | |
364 | .I moderator@host | |
365 | .EE | |
366 | ||
367 | .EX | |
368 | .B ezmlm-unsub | |
369 | .I moddir | |
370 | .I moderator@host | |
371 | .EE | |
372 | ||
373 | For subscription moderation, touch | |
374 | .IR dir\fB/modsub | |
375 | after adding moderator(s). | |
376 | For remote administration, touch | |
377 | .IR dir\fB/remote . | |
378 | If the contents of these files start with a leading forward slash, it is | |
379 | assumed to be the name of | |
380 | .B moddir | |
381 | subscription | |
382 | moderation. If both files exist and start with a forward slash, the | |
383 | .I dir\fB/remote | |
384 | contents are ignored. Moderators are stored in a subscriber list in the | |
385 | .B subscribers | |
386 | subdirectory of | |
387 | .BR moddir . | |
388 | If no directory names are specified, | |
389 | the default, | |
390 | .IR dir\fB/mod , | |
391 | is used. | |
392 | In all cases, the | |
393 | .I subscribers | |
394 | subdirectory of the base directory must exists/be created. | |
395 | ||
396 | Moderation of messages is achieved by | |
397 | creating | |
398 | .I dir\fB/modpost | |
399 | and modifying | |
400 | .IR dir\fB/editor | |
401 | to invoke | |
402 | .B ezmlm-store. | |
403 | .B ezmlm-store | |
404 | stores the message in | |
405 | .IR dir\fB/mod/pending | |
406 | and sends a moderation request to all moderators stored in | |
407 | .IR moddir . | |
408 | ||
409 | If | |
410 | .I dir\fB/modpost | |
411 | does not exist, | |
412 | .B ezmlm-store | |
413 | posts messages directly, and | |
414 | .B ezmlm-clean | |
415 | does nothing. | |
416 | ||
417 | If | |
418 | .I dir\fB/modpost | |
419 | contains a directory name starting with a forward slash, | |
420 | this directory is used as | |
421 | .I moddir | |
422 | for message moderation. | |
423 | Moderators are stored in a subscriber list in the | |
424 | .I subscribers | |
425 | subdirectory of | |
426 | .IR moddir . | |
427 | If no directory names are specified, | |
428 | the default, | |
429 | .IR dir\fB/mod , | |
430 | is used. | |
431 | ||
432 | .IR dir\fB/moderator | |
433 | is linked to | |
434 | .IR dot\fB\-accept-default | |
435 | and | |
436 | .IR dot\fB\-reject-default . | |
437 | It handles replies from the moderators. | |
438 | ||
439 | In addition to a moderator list, the directories | |
440 | .IR dir\fB/mod/pending , | |
441 | .IR dir\fB/mod/accepted , | |
442 | and | |
443 | .IR dir\fB/mod/rejected | |
444 | must exist. These directories contain the message moderation queue. | |
445 | ||
446 | If | |
447 | .IR dir\fB/mod/modtime | |
448 | it determines the minimal time in hours that messages wait in the moderation | |
449 | queue, before they are returned to sender with the message in | |
450 | .IR dir\fB/text/mod-timeout . | |
451 | ||
452 | If a | |
453 | .I \-help | |
454 | command is send for a moderator and | |
455 | .IR dir\fB/modsub | |
456 | or | |
457 | .IR dir\fB/remote | |
458 | exist, a more detailed help message stored in | |
459 | .I dir\fB/text/mod-help | |
460 | will be sent together with the regular help. This text should not contain | |
461 | secrets. | |
462 | If | |
463 | .I dir\fB/text/mod-help | |
464 | does not exist, | |
465 | .I dir\fB/text/help | |
466 | will be sent. | |
467 | ||
468 | If a | |
469 | .I \-list | |
470 | command is sent for a moderator and | |
471 | .IR dir\fB/modsub | |
472 | or | |
473 | .IR dir\fB/remote | |
474 | exist, and the | |
475 | .B ezmlm-manage \-l | |
476 | command line switch is specified, a subscriber list will be returned. | |
477 | ||
478 | If an | |
479 | .I \-edit.file | |
480 | command is sent for a moderator and | |
481 | .IR dir\fB/remote | |
482 | exist, and the | |
483 | .B ezmlm-manage \-d | |
484 | command line switch is specified, | |
485 | .B text\fB/file | |
486 | is returned together with an | |
487 | .B ezmlm | |
488 | cookie. The remote administrator may return an edited version of the | |
489 | file, which will be stored, provided that the cookie is valid. | |
490 | See | |
491 | .B ezmlm-manage(1) | |
492 | for more info. | |
5b62e993 MW |
493 | .SH TEXT |
494 | .I dir\fB/text | |
495 | is a directory | |
496 | containing files sent out by | |
497 | .B ezmlm-manage | |
498 | in response to administrative requests: | |
499 | .TP 15 | |
500 | .B top | |
501 | Introducing | |
502 | .BR ezmlm . | |
503 | This is placed at the top of each response. | |
504 | .TP | |
505 | .B bottom | |
506 | Explaining how to use | |
507 | .BR ezmlm . | |
508 | This is placed at the bottom of each response. | |
509 | .TP | |
510 | .B sub-confirm | |
511 | Explaining how to confirm a subscription request. | |
512 | .TP | |
513 | .B sub-ok | |
514 | Acknowledging successful subscription. | |
515 | .TP | |
516 | .B sub-nop | |
517 | Acknowledging a subscription request for an address already | |
518 | on the mailing list. | |
519 | .TP | |
520 | .B sub-bad | |
521 | Rejecting a bad subscription confirmation number. | |
522 | .TP | |
523 | .B unsub-confirm | |
524 | Explaining how to confirm an unsubscription request, | |
525 | and explaining how to figure out the subscription address. | |
526 | .TP | |
527 | .B unsub-ok | |
528 | Acknowledging successful unsubscription. | |
529 | .TP | |
530 | .B unsub-nop | |
531 | Acknowledging an unsubscription request for an address not | |
532 | on the mailing list. | |
533 | .TP | |
534 | .B unsub-bad | |
535 | Rejecting a bad unsubscription confirmation number. | |
536 | .TP | |
537 | .B get-bad | |
538 | Rejecting a bad archive retrieval request. | |
539 | .TP | |
f8beb284 MW |
540 | .B digest |
541 | Text copied into the | |
542 | .I Administrativia | |
543 | section of the digest. Usually, this will contain subscription info | |
544 | for the digest, as well as information on how to post to the list. | |
545 | .TP | |
546 | .B trailer | |
547 | If this files exists, it is copied to the end of all messages to the list. | |
548 | .TP | |
549 | .B faq | |
550 | Sent in response to the | |
551 | .I faq | |
552 | command. Usually contains frequently asked questions and answers specific | |
553 | for the mailing list. | |
554 | .TP | |
555 | .B info | |
556 | Sent in response to the | |
557 | .I info | |
558 | command. Usually contains a descripition, policy, etc, for the list. The | |
559 | first line should in itself be a very brief description of the list. | |
560 | .TP | |
5b62e993 MW |
561 | .B bounce-warn |
562 | Pointing out that messages have bounced. | |
563 | .TP | |
564 | .B bounce-probe | |
565 | Pointing out that a warning message has bounced. | |
566 | .TP | |
567 | .B bounce-num | |
568 | Explaining that | |
569 | .B ezmlm-return | |
570 | has kept a list of bounced message numbers. | |
571 | .TP | |
f8beb284 MW |
572 | .B dig-bounce-num |
573 | Explaining that digest messages have bounced. All other text files are used | |
574 | for both the main list and the digest list. | |
575 | .TP | |
5b62e993 MW |
576 | .B bounce-bottom |
577 | Separating the bounce message. | |
f8beb284 MW |
578 | .TP |
579 | .B mod-help | |
580 | is set to list moderators issuing a | |
581 | .I \-help | |
582 | command. It contains instructions for moderators, but it is relatively | |
583 | trivial for a non-moderator to read it. Don't put secrets here. | |
584 | .TP | |
585 | .B mod-reject | |
586 | is the returned to the sender of a rejected post. | |
587 | .TP | |
588 | .B mod-timeout | |
589 | is returned if the message timed-out without moderator action. | |
590 | .TP | |
591 | .B mod-sub | |
592 | is added to the text confirming subscription and unsubscription | |
593 | instead of | |
594 | .B bottom | |
595 | and the requesting message, for actions that were approved | |
596 | by a moderator. Not copying the requesting message | |
597 | hides the moderator identity | |
598 | from the subscriber. | |
599 | .TP | |
600 | .B mod-request | |
601 | is the text sent to the moderators to request moderator action on | |
602 | a posted message. | |
603 | .TP | |
604 | .B mod-unsub-confirm | |
605 | Requesting that the moderator confirm a request to subscribe. | |
606 | If this file does not exist, | |
607 | .B sub-confirm | |
608 | will be used. | |
609 | .TP | |
610 | .B mod-unsub-confirm | |
611 | Requesting that the moderator confirm a request to unsubscribe. | |
612 | If this file does not exist, | |
613 | .B unsub-confirm | |
614 | will be used. | |
615 | .TP | |
616 | .B edit-do | |
617 | Instructions sent to the remote administrator together with a copy | |
618 | of a | |
619 | .I dir\fB/text | |
620 | file and editing instructions. | |
621 | .TP | |
622 | .B edit-list | |
623 | A list of editable files in | |
624 | .I dir\fB/text | |
625 | with a one-line description send to a remote administrator in response to a | |
626 | .I -edit | |
627 | command. | |
628 | .TP | |
629 | .B edit-done | |
630 | Sent to the remote administrator after an edited | |
631 | .I dir\fB/text | |
632 | file has been successfully saved. | |
5b62e993 | 633 | .PP |
f8beb284 MW |
634 | Several tags in the text files are replaced by ezmlm programs. |
635 | All programs replace the tag | |
636 | .B <#l#> | |
637 | with the name of the list or the list-digest, as appropriate for the request, | |
638 | and | |
639 | .B <#h#> | |
640 | with the hostname for the list. | |
641 | .B ezmlm-send | |
642 | and | |
643 | .B ezmlm-get | |
644 | replace | |
645 | .B <#n#> | |
646 | with the current message number in added headers from | |
647 | .I dir\fB/headeradd | |
648 | and text files. | |
649 | .B ezmlm-get | |
650 | does this for digest messages, where the current message is the number of | |
651 | the first message in the digest. | |
652 | .B ezmlm-manage | |
653 | replaces the tag | |
654 | .B <#A#> | |
655 | anywhere on a line with the subscription address, and | |
656 | .B <#R#> | |
657 | anywhere on a line | |
658 | with the address the subscriber must reply to. Only the first tag on any | |
659 | line is processed. | |
660 | .PP | |
661 | For backwards compatibility, | |
5b62e993 MW |
662 | .B ezmlm-manage |
663 | replaces the line | |
664 | .B !A | |
665 | in any of these files | |
666 | with the name of the subscription address. | |
667 | It replaces the line | |
668 | .B !R | |
669 | in | |
670 | .B sub-confirm | |
671 | and | |
672 | .B unsub-confirm | |
673 | with the address that the subscriber must reply to. | |
f8beb284 MW |
674 | .PP |
675 | .B ezmlm-store | |
676 | replaces the tag | |
677 | .B <#A#> | |
678 | anywhere on a line with the address for accepting the message, and | |
679 | .B <#R#> | |
680 | anywhere on a line | |
681 | with the address for rejecting the message. | |
682 | Only the first tag on any line is processed. | |
683 | .PP | |
684 | For backwards compatibility, | |
685 | .B ezmlm-store | |
686 | also replaces the line | |
687 | .B !A | |
688 | with the address for accepting the message and the line | |
689 | .B !R | |
690 | with the address for rejecting the message. | |
5b62e993 MW |
691 | .SH "OUTGOING MESSAGE EDITING" |
692 | .I dir\fB/headerremove | |
693 | is a list of bad header field names, | |
694 | one per line. | |
695 | .B ezmlm-send | |
696 | removes these header fields from all outgoing messages. | |
697 | .B ezmlm-make | |
698 | sets up | |
699 | .I dir\fB/headerremove | |
700 | to remove | |
701 | .BR Return-Path , | |
702 | .BR Return-Receipt-To , | |
703 | and | |
704 | .B Return-Path | |
705 | fields. | |
706 | ||
707 | .I dir\fB/headeradd | |
708 | is a list of new header fields. | |
709 | .B ezmlm-send | |
710 | adds these fields to every outgoing message. | |
f8beb284 | 711 | .B ezmlm-send |
5b62e993 MW |
712 | sets up |
713 | .I dir\fB/headeradd | |
f8beb284 MW |
714 | to add |
715 | .B X-No-Archive: yes | |
716 | and | |
717 | .BR Precedence: bulk . | |
718 | ||
719 | If | |
720 | .I dir\fB/mimeremove | |
721 | exists, | |
722 | .B ezmlm-send | |
723 | removed parts with the corresponding content-types from composite MIME | |
724 | messages. If the | |
725 | .B ezmlm-reject | |
726 | .I dir | |
727 | argument is specified, | |
728 | simple MIME messages of these content-types are rejected. | |
729 | ||
730 | If | |
731 | .I dir\fB/mimereject | |
732 | exists, and the | |
733 | .B ezmlm-reject | |
734 | .I dir | |
735 | argument is specified, | |
736 | simple MIME messages of these content-types, or | |
737 | composite MIME messages with any body part of these content-types are rejected. | |
738 | ||
739 | If | |
740 | .I dir\fB/sequence | |
741 | exists, the first line is added as a header to all outgoing messages, followed | |
742 | by a space and the message number. The message number is useful for archive | |
743 | retrievals, since some mail systems do not reveal the return-path to the user. | |
744 | .B NOTE: | |
745 | Sublists have their own message counter. Adding a sequence header from a | |
746 | sublists will give you the sublist message number which is different from | |
747 | the main list message number. | |
748 | ||
749 | .I dir\fB/prefix | |
750 | is a subject prefix. If this file exists, its contents are prefixed to the | |
751 | subject of the post in the outgoing message. The archived message is not | |
752 | processed. Attempts are made to not duplicate an existing prefix in replies. | |
753 | Think twice before using this option. | |
754 | A prefix takes unnecessary space on the subject line and most mail clients | |
755 | can easily filter on other headers, such as 'Mailing-List:'. If | |
756 | .I dir\fB/prefix contains a single '#', this will be replaced by the message | |
757 | number. The use of this feature is inadvisable and violates internet mail | |
758 | standards. However, it is very popular in e.g. Japan. If you must use this | |
759 | feature, make sure you are aware that you may be causing problems to users, | |
760 | sublists, etc. | |
761 | ||
762 | .I dir\fB/text/trailer | |
763 | is a message trailer. If this file exists, it's contents are copied to the | |
764 | end of outgoing messages. Only lines terminated with new-line are copied. | |
765 | No trailer is copied to the archived version of the message. | |
5b62e993 MW |
766 | .SH MISCELLANY |
767 | The first line of | |
768 | .I dir\fB/mailinglist | |
769 | is a line of text. | |
770 | .B ezmlm-send | |
771 | creates a new | |
772 | .B Mailing-List | |
773 | field, showing the contents of | |
774 | .IR dir\fB/mailinglist , | |
775 | in every outgoing message. | |
776 | ||
f8beb284 MW |
777 | If |
778 | .I dir\fB/listid | |
779 | exists, | |
780 | ezmlm programs create a new | |
781 | .B List-ID | |
782 | field, showing the contents of the first line of | |
783 | .IR dir\fB/listid , | |
784 | in every outgoing message. The list-id should be unique and within name | |
785 | space controlled by the owner. It should remain constant even if lists | |
786 | move and be of the format | |
787 | ||
788 | .EX | |
789 | List-ID: optional_text <unique_id.domain> | |
790 | .EE | |
791 | ||
792 | This header would result from a | |
793 | .I dir\fB/listid | |
794 | file containing ``optional_text <unique_id.domain>''. See | |
795 | .I http://www.within.com/~chandhok/ietf/listid.shtml | |
796 | for more info. | |
797 | ||
5b62e993 MW |
798 | The first lines of |
799 | .I dir\fB/outlocal | |
800 | and | |
801 | .I dir\fB/outhost | |
802 | give the outgoing name of the mailing list. | |
803 | These are used by | |
804 | .B ezmlm-manage | |
805 | and | |
806 | .B ezmlm-send | |
807 | to construct sender addresses for outgoing messages. | |
808 | ||
809 | The first lines of | |
810 | .I dir\fB/inlocal | |
811 | and | |
812 | .I dir\fB/inhost | |
813 | give the incoming name of the mailing list. | |
814 | These are used by | |
815 | .B ezmlm-manage | |
816 | to parse incoming envelopes. | |
817 | Normally | |
818 | .I inlocal | |
819 | and | |
820 | .I inhost | |
821 | are the same as | |
822 | .I outlocal | |
823 | and | |
824 | .IR outhost , | |
825 | but sometimes they are different, | |
826 | with | |
827 | .I outlocal\fB@\fIouthost | |
828 | forwarded to | |
829 | .IR inlocal\fB@\fIinhost . | |
830 | ||
831 | If | |
832 | .I dir\fB/sublist | |
833 | exists, | |
834 | this mailing list is a sublist, | |
835 | redistributing messages from a parent mailing list. | |
836 | The first line of | |
837 | .I dir\fB/sublist | |
838 | is the name of the parent list. | |
839 | This affects the behavior of | |
840 | .BR ezmlm-send . | |
841 | ||
f8beb284 MW |
842 | If |
843 | .I dir\fB/qmqpservers | |
844 | exists, | |
845 | .B ezmlm-send | |
846 | and | |
847 | .B ezmlm-get | |
848 | will use | |
849 | .B qmail-qmqpc(1) | |
850 | to send posts and digests. Other mail will use the normal qmail mechanism. | |
851 | If | |
852 | .B qmail-qmqpc | |
853 | is modified correctly, server IP addresses listed one per line in | |
854 | .I dir\fB/qmqpsevers | |
855 | will be tried in order, rather than the default servers specified in | |
856 | .IR /var/qmail/control . | |
857 | ||
858 | If | |
859 | .I dir\fB/msgsize | |
860 | exists, it is assumed to contain ``max:min'', where ``max'' is the maximum | |
861 | size in bytes of an acceptable message body, and ``min'' the corresponding | |
862 | minimal size. Either will be ignored if zero or omitted. If the | |
863 | .B ezmlm-reject | |
864 | command line specifies the list directory, messages not meeting the size | |
865 | criteria are rejected. | |
866 | ||
867 | If | |
868 | .I dir\fB/charset | |
869 | exists, the first line is assumed to represent a valid MIME character set, | |
870 | which is used for all outgoing MIME messages sent by | |
871 | .B ezmlm-get | |
872 | and the message moderation programs. The character set string may be suffixed | |
873 | with ':' and 'Q' or 'B' to send all outgoing | |
874 | text (ezmlm messages, digest table-of-contents, moderation requests, etc) | |
875 | encoded in ``Quoted-Printable'' or ``base64'' encoding. By default, no encoding | |
876 | is done, which may result in the transmission of characters with the high | |
877 | bit set. When encoding is specified, trigger messages and other parts of the | |
878 | reply that should not be encoded are sent as separate MIME parts. | |
879 | ||
5b62e993 MW |
880 | .I dir\fB/lock |
881 | is an empty file. | |
882 | Any program that reads or writes the subscriber list, | |
883 | or adds messages to the archive, | |
884 | locks | |
885 | .IR dir\fB/lock . | |
886 | ||
887 | .I dir\fB/Log | |
888 | is an advisory log of subscription and unsubscription actions. | |
889 | .B WARNING: | |
890 | .B Log | |
891 | is not protected against system crashes. | |
f8beb284 MW |
892 | Log entries may be missing or corrupted if the system goes down. There is |
893 | Log for each of the accessory address databases as well. Thus, the log | |
894 | for digest subscribers is | |
895 | .IR dir\fB/digest/Log . | |
896 | If enabled, these logs can be retrieved by remote administrators (see | |
897 | .BR ezmlm-manage(1) ). | |
898 | ||
899 | .I dir\fB/digest | |
900 | contains items specific for the digest list. | |
901 | ||
902 | .I dir\fB/digest/subscribers | |
903 | contains hash files of digest subscriber addresses. | |
904 | ||
905 | .IR dir\fB/digest/Log , | |
906 | .IR dir\fB/digest/bounce , | |
907 | .IR dir\fB/digest/lockbounce , | |
908 | and | |
909 | .I dir\fB/digest/lock | |
910 | have functions for the digest list that mirror that of the corresponding | |
911 | files in | |
912 | .IR dir . | |
913 | ||
914 | .I dir\fB/sql | |
915 | contains SQL server access information for list that are configured to | |
916 | use an SQL database for storage. | |
917 | ||
918 | .I dir\fB/tstdig | |
919 | is a timestamp used temporarily by | |
920 | .B ezmlm-tstdig(1) | |
921 | to coordinate digesting. | |
5b62e993 | 922 | .SH "SEE ALSO" |
f8beb284 MW |
923 | ezmlm-check(1), |
924 | ezmlm-clean(1), | |
925 | ezmlm-gate(1), | |
926 | ezmlm-get(1), | |
927 | ezmlm-idx(1), | |
928 | ezmlm-issub(1), | |
929 | ezmlm-issubn(1), | |
5b62e993 MW |
930 | ezmlm-list(1), |
931 | ezmlm-make(1), | |
932 | ezmlm-manage(1), | |
f8beb284 MW |
933 | ezmlm-moderate(1), |
934 | ezmlm-request(1), | |
5b62e993 MW |
935 | ezmlm-return(1), |
936 | ezmlm-send(1), | |
f8beb284 | 937 | ezmlm-store(1), |
5b62e993 | 938 | ezmlm-sub(1), |
f8beb284 | 939 | ezmlm-tstdig(1), |
5b62e993 MW |
940 | ezmlm-unsub(1), |
941 | ezmlm-warn(1), | |
942 | dot-qmail(5) |