This file is indexed.

/usr/share/doc/courier-doc/htmldoc/couriermlm.html is in courier-doc 0.66.1-1ubuntu4.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  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
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
<?xml version="1.0"?>
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/><title>couriermlm</title><link rel="stylesheet" href="style.css" type="text/css"/><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"/><link rel="home" href="#id283511" title="couriermlm"/><link xmlns="" rel="stylesheet" type="text/css" href="manpage.css"/><meta xmlns="" name="MSSmartTagsPreventParsing" content="TRUE"/><link xmlns="" rel="icon" href="icon.gif" type="image/gif"/><!--

Copyright 1998 - 2009 Double Precision, Inc.  See COPYING for distribution
information.

--></head><body><div class="refentry" title="couriermlm"><a id="id283511" shape="rect"> </a><div class="titlepage"/><div class="refnamediv"><h2>Name</h2><p>couriermlm — The <span class="application">Courier</span>
mailing list manager</p></div><div class="refsynopsisdiv" title="Synopsis"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">couriermlm</code>  {<em class="replaceable"><code>command</code></em>} {<em class="replaceable"><code>directory</code></em>} [<em class="replaceable"><code>arg</code></em>...]</p></div></div><div class="refsect1" title="DESCRIPTION"><a id="id283273" shape="rect"> </a><h2>DESCRIPTION</h2><p>
<span class="command"><strong>couriermlm</strong></span> is the
<span class="application">Courier</span> mail server's
mailing list manager.
This command sets up, maintains, and manages mailing lists.
<span class="command"><strong>couriermlm</strong></span> automatically handles
requests to subscribe and unsubscribe list members, detects
undeliverable addresses and removes them from the subscription rolls.
Mailing lists managed by <span class="command"><strong>couriermlm</strong></span> require zero human
administrative oversight.
<span class="command"><strong>couriermlm</strong></span> supports digests, write-only posting aliases,
and moderated mailing lists.</p><div class="refsect2" title="CREATING A MAILING LIST"><a id="id283314" shape="rect"> </a><h3>CREATING A MAILING LIST</h3><p>
Anyone can use <span class="command"><strong>couriermlm</strong></span>,
not just the system administrator.
The <span class="application">Courier</span> mail server mail server
translates
an address <code class="literal">list-name@domain</code>
as a local address with a corresponding
<a class="ulink" href="dot-courier.html" target="_top" shape="rect"><span class="citerefentry"><span class="refentrytitle">dot-courier</span>(5)</span>
</a>
file.
Anyone that can install a
<a class="ulink" href="dot-courier.html" target="_top" shape="rect"><span class="citerefentry"><span class="refentrytitle">dot-courier</span>(5)</span>
</a>
file, and can schedule
<span class="citerefentry"><span class="refentrytitle">cron</span>(8)</span>
jobs, can run a <span class="command"><strong>couriermlm</strong></span> mailing list.</p><p>
Note that the system administrator can optionally remove the
<a class="ulink" href="dot-courier.html" target="_top" shape="rect"><span class="citerefentry"><span class="refentrytitle">dot-courier</span>(5)</span>
</a>
support from the the <span class="application">Courier</span> mail server.
<span class="command"><strong>couriermlm</strong></span> will not work in that case.</p><p>Setting up a mailing list consists of the following steps:</p><div class="variablelist"><dl><dt><span class="term">Run <span class="command"><strong>couriermlm create</strong></span></span></dt><dd><p>
Use this command to create a directory where <span class="command"><strong>couriermlm</strong></span>
keeps all mailing list related files.</p></dd><dt><span class="term">Configure the mailing list</span></dt><dd><p>
The <span class="command"><strong>couriermlm create</strong></span> command
initializes the mailing list subdirectory with some default template
responses.  It is necessary to customize them for your mailing list, and it
may be necessary to issue some additional commands in order to configure
appropriate mailing list options -- such as enabling unrestricted posting
privileges, and enabling moderation.</p></dd><dt><span class="term">Create <a class="ulink" href="dot-courier.html" target="_top" shape="rect"><span class="citerefentry"><span class="refentrytitle">dot-courier</span>(5)</span>
</a>
files</span></dt><dd><p>
Set up to run
<span class="command"><strong>couriermlm</strong></span> to distribute mailing list messages, and process
requests.</p></dd><dt><span class="term">Set up
<span class="citerefentry"><span class="refentrytitle">cron</span>(8)</span>
</span></dt><dd><p>
You need to set up
<span class="citerefentry"><span class="refentrytitle">cron</span>(8)</span>
jobs to run the <span class="command"><strong>couriermlm hourly</strong></span> and
<span class="command"><strong>couriermlm daily</strong></span>
commands, which perform regular mailing list maintenance.</p></dd><dt><span class="term">Back up subscription lists</span></dt><dd><p>
As part of your daily job you should also
run the <span class="command"><strong>export</strong></span> command, in order to back up the mailing list
subscriber information. In the event that the mailing list database gets
corrupted or lost, you can restore it from this backup file. See the
<span class="command"><strong>export</strong></span> command for more information.</p></dd></dl></div><div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>
Setting up a digest for the mailing list requires additional steps.
See "<a class="ulink" href="#digest" target="_top" shape="rect">Setting up a mailing list digest</a>" below for
more information.</p></div><p>
The first step is to run the following command:</p><div class="informalexample"><pre class="programlisting" xml:space="preserve">
couriermlm create <em class="replaceable"><code>directory</code></em> ADDRESS=<em class="replaceable"><code>list@domain</code></em>
</pre></div><p>
<em class="replaceable"><code>directory</code></em> is the mailing list directory that will
be managed by <span class="command"><strong>couriermlm</strong></span>.
This directory should not be created in advance,
this command creates this directory, and initializes it.</p><p>
<em class="replaceable"><code>list@domain</code></em> is the mailing list's address, the
address that sends messages to the mailing list.</p><p>
An additional setting, <code class="literal">URL</code> may also be specified:</p><div class="informalexample"><pre class="programlisting" xml:space="preserve">
couriermlm create <em class="replaceable"><code>directory</code></em> ADDRESS=<em class="replaceable"><code>list@domain</code></em> URL=<em class="replaceable"><code>url</code></em>
</pre></div><p>
<span class="quote"><span class="quote">url</span></span> would be the <acronym class="acronym">URL</acronym> of the
<span class="application">WebMLM</span> web page for this mailing list.
See
<a class="ulink" href="webmlmd.html" target="_top" shape="rect"><span class="citerefentry"><span class="refentrytitle">webmlmd</span>(1)</span>
</a>
for more information.</p><p>
The directory created
by <span class="command"><strong>couriermlm create</strong></span> is initialized to contain
a number of text files that <span class="command"><strong>couriermlm</strong></span> sends back as
replies to administrative commands. It is necessary to edit these template
files and adjust the text in those files for this mailing list.
All template filenames end with <code class="literal">.tmpl</code>, and their contents
are self explanatory.  Some important template files are:</p><div class="variablelist"><dl><dt><span class="term">help.tmpl</span></dt><dd><p>
This text is returned in response to the help
command. This text must be modified depending upon whether this mailing
list is a moderated mailing list, has a digest version, or if any other
non-default configuration options are set for the mailing list.</p></dd><dt><span class="term">sub.tmpl</span></dt><dd><p>
This is the reply that's sent back in response to a
subscription request.  Less important is <code class="filename">unsub.tmpl</code>,
which is the response to a request to unsubscribe.</p></dd><dt><span class="term">sub2.tmpl</span></dt><dd><p>
This is the successful subscription confirmation.  A
brief overview of the mailing list might be appropriate here.</p></dd></dl></div><p>
<span class="command"><strong>couriermlm</strong></span> has rudimentary support for non-English
templates.
The <span class="command"><strong>couriermlm create</strong></span> command has a single, optional
parameter, <code class="option">--lang=<em class="replaceable"><code>suffix</code></em></code>
The option must be specified after the mailing list directory's name:</p><div class="informalexample"><pre class="programlisting" xml:space="preserve">
couriermlm create <em class="replaceable"><code>directory</code></em> --lang=es ADDRESS=<em class="replaceable"><code>list@domain</code></em> URL=<em class="replaceable"><code>url</code></em>
</pre></div><p>
The templates for the stock text files come from
<code class="filename">/usr/lib/courier/couriermlm</code>.
This directory contains all the <code class="filename">*.tmpl</code> and
<code class="filename">*.html</code> template files that
<span class="command"><strong>couriermlm create</strong></span> installs in the new mailing list
<em class="replaceable"><code>directory</code></em>.</p><p>
Translated versions of template files are installed in the same directory,
<code class="filename">/usr/lib/courier/couriermlm</code>.
The translated version of <code class="filename"><em class="replaceable"><code>file</code></em></code>
must be installed
as <code class="filename"><em class="replaceable"><code>file</code></em>.<em class="replaceable"><code>suffix</code></em></code>,
for example: <code class="filename">help.tmpl.es</code> is the translated version
of <code class="filename">help.tmpl</code>, with the <span class="quote"><span class="quote">es</span></span> suffix.</p><p>
The <code class="option">--lang=<em class="replaceable"><code>suffix</code></em></code> option
installs the the <code class="filename">.suffix</code> version of each text template
file, if available.
If not, the stock English template file gets copied, as usual.</p><div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>
Do not remove the English template files, even if you never use them.
They must be left in place, in <code class="filename">/usr/lib/courier/couriermlm</code>,
for <span class="command"><strong>couriermlm create</strong></span> to work correctly.</p></div><p>Example:</p><div class="informalexample"><pre class="programlisting" xml:space="preserve">
couriermlm create /home/lists/users-list --lang=es ...
</pre></div><p>
This example installs the <code class="filename">*.es</code> versions of mailing list
template files.
Only the stock, English template files come with the
<span class="application">Courier</span> mail server.
This mechanism only provides an easy integration ability with template
files from other sources.</p><p>
There are some additional configuration files that can be modified to suit
your taste:</p><div class="variablelist"><dl><dt><span class="term">headeradd</span></dt><dd><p>
This file can be initialized to contain any
mail headers that will be automatically added to every mailing list
message.  The contents of this file are simply prepended to
every message that goes out.  Blank lines are not allowed.</p></dd><dt><span class="term">headerdel</span></dt><dd><p>
This file lists any headers that will be
automatically removed from every mailing list message
before it's sent. List
each header one per line, including the : character.  For example, to
remove all <em class="replaceable"><code>Received:</code></em> and
<em class="replaceable"><code>Date:</code></em> headers from every message,
initialize this file to contain the following two lines:</p><div class="informalexample"><pre class="programlisting" xml:space="preserve">
Received:
Date:
</pre></div></dd></dl></div><p>
Both the <code class="filename">headeradd</code> and <code class="filename">headerdel</code>
files can be
used to implement a popular feature of setting the replies to every message to
go to the mailing list.  Having
"<code class="literal">Reply-To:</code>" in
<code class="filename">headerdel</code>, removes any existing
<em class="replaceable"><code>Reply-To:</code></em> header,
and then having
"<code class="literal">Reply-To: <em class="replaceable"><code>list@domain</code></em></code>"
in <code class="filename">headeradd</code> appends
a fixed <em class="replaceable"><code>Reply-To:</code></em> header to every message.</p><p>
The <em class="replaceable"><code>create</code></em> command also creates the following
subdirectories in the mailing list directory:</p><div class="variablelist"><dl><dt><span class="term">sublist</span></dt><dd><p>
This subdirectory has the database files that
contain the mailing list's subscription list.</p></dd><dt><span class="term">unsublist</span></dt><dd><p>
This subdirectory stores files that contain
information about addresses that have been unsubscribed from the mailing
list.  This information might be of some use when tracking down an old
subscription.  The contents of this directory are not automatically
purged, you must set up your own purging mechanism for this directory.
</p></dd><dt><span class="term">commands, commands.dat</span></dt><dd><p>
These directories store temporary files that
contain pending (unconfirmed) commands for the mailing list manager. The
<span class="command"><strong>couriermlm</strong></span> commands <em class="replaceable"><code>hourly</code></em> and
<em class="replaceable"><code>daily</code></em> must be executed
regularly in order to periodically purge stale entries.</p></dd><dt><span class="term">modqueue</span></dt><dd><p>
Messages awaiting moderator approval (for moderated lists).</p></dd><dt><span class="term">archive</span></dt><dd><p>
Messages received by this mailing list will be
stored here, in addition to being forwarded to subscribers.
<span class="command"><strong>couriermlm</strong></span> does not automatically do any purging on this
subdirectory, you must set up your own archiving mechanism that cleans out
this subdirectory.</p></dd></dl></div><p>
The last step involves installing a couple of
<a class="ulink" href="dot-courier.html" target="_top" shape="rect"><span class="citerefentry"><span class="refentrytitle">dot-courier</span>(5)</span>
</a>
files that run <span class="command"><strong>couriermlm</strong></span> to receive mailing list messages
and administrative commands. The mailing list address,
<em class="replaceable"><code>list@domain</code></em>,
corresponds to some
<a class="ulink" href="dot-courier.html" target="_top" shape="rect"><span class="citerefentry"><span class="refentrytitle">dot-courier</span>(5)</span>
</a>
file. For example, if your
system account is <em class="replaceable"><code>john</code></em>, and your mail domain is
<em class="replaceable"><code>example.com</code></em>,
then the
<a class="ulink" href="dot-courier.html" target="_top" shape="rect"><span class="citerefentry"><span class="refentrytitle">dot-courier</span>(5)</span>
</a>
file for the mailing list
<em class="replaceable"><code>&lt;john-list@example.com&gt;</code></em> is
<code class="filename">$HOME/.courier-list</code>.</p><p>
Let's say that the
<a class="ulink" href="dot-courier.html" target="_top" shape="rect"><span class="citerefentry"><span class="refentrytitle">dot-courier</span>(5)</span>
</a>
file is
<code class="filename">$HOME/.courier-list</code>. To properly support the mailing list, the
following
<a class="ulink" href="dot-courier.html" target="_top" shape="rect"><span class="citerefentry"><span class="refentrytitle">dot-courier</span>(5)</span>
</a>
files will have to be initialized as
follows:</p><div class="variablelist"><dl><dt><span class="term">$HOME/.courier-list</span></dt><dd><p>
This file should be initialized to
contain the following delivery instruction:</p><div class="informalexample"><pre class="programlisting" xml:space="preserve">
| /usr/bin/couriermlm msg <em class="replaceable"><code>directory</code></em>
</pre></div><p>
<em class="replaceable"><code>directory</code></em> is the created mailing list
directory.</p></dd><dt><span class="term">$HOME/.courier-list-owner</span></dt><dd><p>
This file should contain the
appropriate delivery instructions for forwarding all mail
addressed to <code class="filename">&lt;list-owner@domain&gt;</code> to the address of
the
owner of the mailing list. This can be another E-mail address, or a
mailbox specification.</p></dd><dt><span class="term">$HOME/.courier-list-default</span></dt><dd><p>
This file should be
initialized to contain the following delivery instruction:</p><div class="informalexample"><pre class="programlisting" xml:space="preserve">
| /usr/bin/couriermlm ctlmsg <em class="replaceable"><code>directory</code></em>
</pre></div><p>
<em class="replaceable"><code>directory</code></em> is the created mailing list directory.
This
<a class="ulink" href="dot-courier.html" target="_top" shape="rect"><span class="citerefentry"><span class="refentrytitle">dot-courier</span>(5)</span>
</a>
file provides support for all other addresses of the form
<code class="filename">&lt;list-<em class="replaceable"><code>command</code></em>@domain&gt;</code>,
where <em class="replaceable"><code>command</code></em> is a mailing list administrative
command. Commands are sent
to this mailing list manager by sending a message to one of several
special addresses, described more fully in "<a class="ulink" href="#command" target="_top" shape="rect">Mailing
list commands</a>", below.</p></dd></dl></div></div><div class="refsect2" title="MANUAL COMMANDS"><a id="id307256" shape="rect"> </a><h3>MANUAL COMMANDS</h3><p>
<span class="command"><strong>couriermlm</strong></span> may also be run manually from the command
line as follows:</p><div class="informalexample"><pre class="programlisting" xml:space="preserve">
/usr/bin/couriermlm <em class="replaceable"><code>command</code></em> <em class="replaceable"><code>directory</code></em> [ options... ]
</pre></div><p>
<em class="replaceable"><code>command</code></em> is a command from the following list.
<em class="replaceable"><code>directory</code></em> is
the mailing list directory. The commands are:</p><div class="variablelist"><dl><dt><span class="term">create</span></dt><dd><p>
Create a mailing list.</p></dd><dt><span class="term">update</span></dt><dd><p>
Update/restore mailing list templates.
The original, default, mailing list message template files
(<code class="filename">*.tmpl</code> and <code class="filename">*.tmpl.html</code>)
are reinstalled into the mailing list directory.
This command must be processed for every mailing list directory after
upgrading to the
<span class="application">Courier</span> server version 0.55, or later,
from earlier versions (but see below).
<span class="command"><strong>couriermlm</strong></span> in
version 0.55 of the <span class="application">Courier</span> mail server
uses updated templates files, which must be installed in every mailing list
directory.
Although the names of many template files have not changed, the embedded
markup codes in the template files work differently.</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>
Begin by making a backup copy of all <code class="filename">*.tmpl</code> files
in the existing <span class="command"><strong>couriermlm</strong></span> mailing list directory.</p></li><li class="listitem"><p>
Run the <span class="quote"><span class="quote">update</span></span> command on the list directory.</p></li><li class="listitem"><p>
Review the backed up template files, identify your customized changes,
then retype them into new template files installed by the <span class="quote"><span class="quote">update</span></span>
command.</p></li><li class="listitem"><p>
Proceed to the next mailing list directory.</p></li></ol></div><p>
Yes, this is going to be a pain.
This is the first overhaul of <span class="command"><strong>couriermlm</strong></span>'s infrastructure
in many years.
Once a decade, some elbow grease must be sacrificed in the name of
progress.
It's not the end of the world.</p><p>
In an extreme emergency, preserve the <span class="command"><strong>couriermlm</strong></span> from
the previous version of the
<span class="application">Courier</span> mail server.
Mass-update all existing lists'
<code class="filename">.courier-<em class="replaceable"><code>list</code></em></code> and
<code class="filename">.courier-<em class="replaceable"><code>list</code></em>-default</code>
files to run the old <span class="command"><strong>couriermlm</strong></span>.
Then, migrate each mailing list on a predetermined schedule.  After migrating
each list, put the default path back into the list's
 <code class="filename">.courier</code> files.</p><p>
Keep in mind the following issues, while migrating the lists:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
The <code class="filename">help.tmpl</code> template file is usually the one that
gets customized the most.  In most cases, large bits and pieces of this
file, that document certain list options that do not apply to this list,
must be removed.</p></li><li class="listitem"><p>
There are several new template files, including a number of
<code class="filename">*.html</code> files that refer to new
<acronym class="acronym">HTML</acronym>-formatted
responses from <span class="command"><strong>couriermlm</strong></span>, and the
<span class="application">WebMLM</span> interface.</p></li><li class="listitem"><p>
Be aware of updated mail headers declared in several template files.
The <acronym class="acronym">MIME</acronym> character set is now given as
<code class="literal">utf-8</code>.  Some templates no longer contain the
<code class="literal">Mime-Version</code> and <code class="literal">Subject</code> headers.
The <code class="literal">Subject</code> headers are moved to separate template files.
Many existing template files now contain both a plain text and an
<acronym class="acronym">HTML</acronym>-formatted version of the <span class="command"><strong>couriermlm</strong></span>
response.  Always scroll to the end of each template file, to reveal
any appended <acronym class="acronym">HTML</acronym> portion of template's text.</p></li></ul></div></dd><dt><span class="term">set</span></dt><dd><p>
Set mailing list options.</p></dd><dt><span class="term">sub</span></dt><dd><p>
Manually subscribe an address to the mailing list.</p></dd><dt><span class="term">unsub</span></dt><dd><p>
Manually unsubscribe an address from the mailing list.</p></dd><dt><span class="term">lsub</span></dt><dd><p>
List all the subscribers to this mailing list.</p></dd><dt><span class="term">laliases</span></dt><dd><p>
List write-only aliases for this mailing list.</p></dd><dt><span class="term">export</span></dt><dd><p>
Export mailing list subscriber information.</p></dd><dt><span class="term">import</span></dt><dd><p>
Import mailing list subscriber information.</p></dd><dt><span class="term">ctlmsg</span></dt><dd><p>
Receive and interpret a control message.</p></dd><dt><span class="term">info</span></dt><dd><p>
Display a subscription record.</p></dd><dt><span class="term">msg</span></dt><dd><p>
Post a message to the mailing list.</p></dd><dt><span class="term">hourly</span></dt><dd><p>
Perform hourly maintenance.  It is necessary to set up a
<span class="citerefentry"><span class="refentrytitle">cron</span>(8)</span>
job to execute the <em class="replaceable"><code>hourly</code></em> command once an
hour.</p></dd><dt><span class="term">daily</span></dt><dd><p>
Perform daily maintenance.  It is necessary to set up a
<span class="citerefentry"><span class="refentrytitle">cron</span>(8)</span>
job to execute the <em class="replaceable"><code>daily</code></em> command once a
day.</p></dd><dt><span class="term">digest</span></dt><dd><p>
Create a digest.  See "<a class="ulink" href="#digest" target="_top" shape="rect">Setting up
 a mailing list digest</a>" below for more information.</p></dd></dl></div></div><div class="refsect2" title="MANUAL SUBSCRIPTION MANAGEMENT"><a id="id328131" shape="rect"> </a><h3>MANUAL SUBSCRIPTION MANAGEMENT</h3><p>
The <code class="literal">sub</code>, <code class="literal">unsub</code>, <code class="literal">lsub</code>,
<code class="literal">laliases</code>, <code class="literal">export</code>, and
<code class="literal">import</code> commands
allow manual subscription list management. Normally, subscription-related
commands are done by sending an appropriate mailing list command, see
"<a class="ulink" href="#command" target="_top" shape="rect">Mailing List Commands</a>", below.</p><div class="informalexample"><pre class="programlisting" xml:space="preserve">
couriermlm sub <em class="replaceable"><code>directory</code></em> <em class="replaceable"><code>user@domain</code></em>
</pre></div><p>
This command adds the address <code class="filename">&lt;user@domain&gt;</code> to the
subscription list.
<span class="command"><strong>couriermlm</strong></span> will now read a free-form comment
or a note from standard input, terminated by an end-of-file (usually CTRL-D).
The free-form comment is stored in the subscription database, together with
the address, and is shown by the "info" command.</p><div class="informalexample"><pre class="programlisting" xml:space="preserve">
couriermlm unsub <em class="replaceable"><code>directory</code></em> <em class="replaceable"><code>user@domain</code></em>
</pre></div><p>
This command remove the address <code class="filename">&lt;user@domain&gt;</code> from the
subscription rolls.  <span class="command"><strong>couriermlm</strong></span> will also read a free-form
comment, which is added to the subscription record.  After removing this
address from the subscription rolls, its subscription record is archived in
the <em class="replaceable"><code>directory/unsublist</code></em> directory.</p><div class="informalexample"><pre class="programlisting" xml:space="preserve">
couriermlm lsub <em class="replaceable"><code>directory</code></em>
</pre></div><p>
This command lists all the addresses subscribed to the list, on standard
output, one per line.</p><div class="informalexample"><pre class="programlisting" xml:space="preserve">
couriermlm laliases <em class="replaceable"><code>directory</code></em>
</pre></div><p>
This command lists all write-only aliases that have been subscribed to the
list, together with the subscriber address that added each alias. See
"<a class="ulink" href="#wonly" target="_top" shape="rect">Write-Only Aliases</a>" for more information.</p><div class="informalexample"><pre class="programlisting" xml:space="preserve">
couriermlm export <em class="replaceable"><code>directory</code></em>
</pre></div><p>
The <em class="replaceable"><code>export</code></em> command lists the contents of the
subscription database
on standard output.  The export command produces the following output
format:</p><div class="informalexample"><pre class="programlisting" xml:space="preserve">
<em class="replaceable"><code>address</code></em>
<em class="replaceable"><code>subscription information</code></em>
 ...
<em class="replaceable"><code>address</code></em>
<em class="replaceable"><code>subscription information</code></em>
 ...
</pre></div><p>
"<em class="replaceable"><code>address</code></em>", is an address subscribed to the
mailing list. This is
followed by its corresponding subscription information, usually a copy of the
subscription request that was used to add the address to the mailing list. The
subscription information is terminated by a line containing a single period.
Any lines in the subscription information that begin with a period have an
extra period prepended to them.</p><div class="informalexample"><pre class="programlisting" xml:space="preserve">
couriermlm import <em class="replaceable"><code>directory</code></em>
</pre></div><p>
The <em class="replaceable"><code>import</code></em> command reads on standard input a
previously exported
mailing list subscription database, and adds those addresses to the indicated
mailing list.</p><p>
It is highly recommended to make a regular backup of subscriber information
using the <em class="replaceable"><code>export</code></em> command, in the event that the subscription database
gets corrupted.  In which case the <em class="replaceable"><code>import</code></em> command
can be used to
rebuild the subscription database, in absence of any direct backups of the
database files.</p></div><div class="refsect2" title="SETTING MAILING LIST OPTIONS"><a id="id328361" shape="rect"> </a><h3>SETTING MAILING LIST OPTIONS</h3><a id="options" shape="rect"> </a><p>
The <em class="replaceable"><code>set</code></em> command sets various list options:</p><div class="informalexample"><pre class="programlisting" xml:space="preserve">
couriermlm set <em class="replaceable"><code>directory</code></em> <em class="replaceable"><code>option=value</code></em> <em class="replaceable"><code>option=value...</code></em>
</pre></div><div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>
Setting the <code class="literal">ADDRESS</code> or the <code class="literal">URL</code>
options, described below, automatically updates the contents of the
<code class="filename">headeradd</code> configuration file.
Its existing <span class="quote"><span class="quote">List-</span></span> headers are removed and replaced by
updated <span class="quote"><span class="quote">List-</span></span> headers that reflect the revised list address
or <acronym class="acronym">URL</acronym>.</p></div><p>
One or more options can be set with the same command. The available options
are:</p><div class="variablelist"><dl><dt><span class="term">ADDRESS=<em class="replaceable"><code>address</code></em></span></dt><dd><p>
The base E-mail address for this mailing list.</p></dd><dt><span class="term">URL=<em class="replaceable"><code>address</code></em></span></dt><dd><p>
The <acronym class="acronym">URL</acronym> of <span class="application">WebMLM</span> web page
for this mailing list.</p><div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>
<span class="application">WebMLM</span> determines its own
<acronym class="acronym">URL</acronym> automatically, by reading its <acronym class="acronym">HTTP</acronym>
headers.
This setting is used by <span class="command"><strong>couriermlm</strong></span>, which has no
knowledge of the web server's configuration, and needs to know the correct
<acronym class="acronym">URL</acronym> to insert into generated messages.</p></div></dd><dt><span class="term">CASESENSITIVE=<em class="replaceable"><code>flag</code></em></span></dt><dd><p>
If flag is "1", the userid portion of E-mail addresses are case-sensitive.
The domain address portion is always case-insensitive.
The default setting is "0" making both userid and domain address portions
of E-mail addresses case-insensitive.</p><div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>
Be careful when changing this setting on an active list.
Changing this option to <span class="quote"><span class="quote">CASESENSITIVE=1</span></span>, forces all
existing subscribers to make sure their addresses are lowercase-only,
otherwise they will no longer be recognized as subscribers.
Changing this option to <span class="quote"><span class="quote">CASESENSITIVE=0</span></span> blocks
all subscribed addresses that have uppercase characters in the userid portion
of their E-mail address.
They will continue to receive mailing list traffic, but unable to post
messages to the list, or unsubscribe from it.
It will not be possible to unsubscribe those addresses even by running
the <span class="command"><strong>couriermlm</strong></span> command manually.</p></div></dd><dt><span class="term">DIGEST=<em class="replaceable"><code>directory</code></em></span></dt><dd><p>
Enable digests. <em class="replaceable"><code>directory</code></em>
is the pathname to the previously-createddigest list directory.
See "<a class="ulink" href="#digest" target="_top" shape="rect">Setting up a mailing list digest</a>"
below for more information.</p></dd><dt><span class="term">KEYWORD=<em class="replaceable"><code>keyword</code></em></span></dt><dd><p>
Set the subject line keyword for
mailing list messages.
If set, <span class="command"><strong>couriermlm</strong></span> inserts "[keyword]" into
the subject of every mailing list message, to aid sorting by the
recipients.</p></dd><dt><span class="term">MAXBOUNCES=<em class="replaceable"><code>n</code></em></span></dt><dd><p>
Maximum number of bounce notifications sent by the
<em class="replaceable"><code>hourly</code></em> command, in order to prevent the
mail system from being overloaded. The default is 20 bounce notifications.
Any unsent notifications will be carried over to the next hourly job.</p></dd><dt><span class="term">MAXMODNOTICES=<em class="replaceable"><code>n</code></em></span></dt><dd><p>
Maximum number of moderation
reminders sent by the <em class="replaceable"><code>hourly</code></em> command, in order to
prevent the mail
system from being overloaded. The default is 20 moderation reminders. Any
unsent reminders will be carried over to the next hourly job.</p></dd><dt><span class="term">MAXFETCHSIZE=<em class="replaceable"><code>K</code></em></span></dt><dd><p>
Maximum size, in kilobytes, of a response to the
<em class="replaceable"><code>fetch</code></em> command.  The default is 100Kb. This option
is used to minimize the impact of abusive requests for the entire archive,
with a forged return address.</p></dd><dt><span class="term">NAME=<em class="replaceable"><code>name</code></em></span></dt><dd><p>
The name that's listed on the return
address of administrative messages. Note that if
<em class="replaceable"><code>name</code></em> contains
spaces, you should quote this argument in the shell. The default value is
"Courier Mailing List Manager".</p></dd><dt><span class="term">NOBOZOS=<em class="replaceable"><code>flag</code></em></span></dt><dd><p>
If flag is "0" <span class="command"><strong>couriermlm</strong></span> will
not attempt to block misdirected subscribes and unsubscribes that are sent
to the mailing list's posting address. If flag is "1" (the default), those
kinds of messages will be bounced appropriately.</p></dd><dt><span class="term">NODSN=<em class="replaceable"><code>flag</code></em></span></dt><dd><p>
If flag is "1" <span class="command"><strong>couriermlm</strong></span> will
use a Delivery Status Notification setting of "never"
when it sends confirmation requests and help messages:
this should reduce the amount of useless failure notifications generated
when <span class="command"><strong>couriermlm</strong></span> dutifully replies to spam received by the mailing
list administrative addresses, i.e. -(un)subscribe and -help.
If flag is "0" (the default), a DSN setting of "fail" will be used.
Please see <span class="citerefentry"><span class="refentrytitle">sendmail</span>(1)</span>'s -n option for more details on the DSN setting.
</p></dd><dt><span class="term">POST=<em class="replaceable"><code>option</code></em></span></dt><dd><p>
Set posting options. <em class="replaceable"><code>option</code></em> is
one of three values: "<code class="literal">subscribers</code>" - only subscribers may
post messages to
this mailing list (this is the default); "<code class="literal">all</code>" - anyone
can post messages
to this mailing list; "<code class="literal">mod</code>" - only subscribers may post,
and messages are sent to the list owner for approval (moderation).</p></dd><dt><span class="term">POSTARCHIVE=<em class="replaceable"><code>option</code></em></span></dt><dd><p>
Set access to archived messages.
<em class="replaceable"><code>option</code></em> is either:
"<code class="literal">all</code>" -
Anyone can access the mailing
list archive; or "<code class="literal">subscribers</code>" - only subscribers can
access the archive.
The default is "<code class="literal">all</code>".</p></dd><dt><span class="term">PURGEARCHIVE=<em class="replaceable"><code>d</code></em></span></dt><dd><p>
Purge archived mailing list
messages after <em class="replaceable"><code>d</code></em> days.  The default is 0
days - messages are never removed from the archive subdirectory.</p></dd><dt><span class="term">PURGEBOUNCE=<em class="replaceable"><code>d</code></em></span></dt><dd><p>
Wait <em class="replaceable"><code>d</code></em> days for the probe
message, that automatically unsubscribes undeliverable addresses, to
bounce (default: 14 days).  Probe messages are sent three days (default)
after the first message to an address bounces.</p></dd><dt><span class="term">PURGECMD=<em class="replaceable"><code>h</code></em></span></dt><dd><p>
Purge unconfirmed subscribe/unsubscribe
requests after <em class="replaceable"><code>h</code></em> hours (default: 48 hours).</p></dd><dt><span class="term">REMODERATE=<em class="replaceable"><code>h</code></em></span></dt><dd><p>
Resend a moderation reminder after
<em class="replaceable"><code>h</code></em> hours (default: 12 hours).</p></dd><dt><span class="term">REPORTADDR=<em class="replaceable"><code>address</code></em></span></dt><dd><p>
Mail daily reports of new and
removed subscribers to this address.  Must be set in order to receive
reports. Provide an empty address to stop reporting.</p></dd><dt><span class="term">SIMPLECONFIRM=<em class="replaceable"><code>n</code></em></span></dt><dd><p>
If <em class="replaceable"><code>n</code></em> is <code class="literal">1</code>, confirmation
requests may be acknowledged without adding <span class="quote"><span class="quote">yes</span></span> to the
subject line.</p><div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>
The text in <code class="filename">sub.tmpl</code>, <code class="filename">unsub.tmpl</code>,
and <code class="filename">help.tmpl</code> may need adjusting.</p></div></dd><dt><span class="term">SUBSCRIBE=<em class="replaceable"><code>option</code></em></span></dt><dd><p>
Set subscription options.
<em class="replaceable"><code>option</code></em> is either "all", meaning that anyone can
subscribe, or
"mod", meaning moderated subscription requests, where all subscription
requests are sent to the mailing list owner for approval. The default is
"all".</p></dd><dt><span class="term">STARTPROBE=<em class="replaceable"><code>n</code></em></span></dt><dd><p>
Send a probe to a bouncing address
<em class="replaceable"><code>n</code></em> days after receiving the first bounce.
Basically this means that
an address must bounce for at least <em class="replaceable"><code>n</code></em> days before
it gets a probe message. The default is 3 days.</p></dd></dl></div><p>
Option names and settings are case sensitive.</p><div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>
If you set up a digest list, you MUST set identical
<code class="literal">POSTARCHIVE</code> option for both the main list and the digest
list.</p></div></div><div class="refsect2" title="DISPLAYING A SUBSCRIPTION RECORD"><a id="id329098" shape="rect"> </a><h3>DISPLAYING A SUBSCRIPTION RECORD</h3><p>
The <code class="literal">info</code> command displays the subscription record for
the requested address:</p><div class="informalexample"><pre class="programlisting" xml:space="preserve">
couriermlm info <em class="replaceable"><code>directory</code></em> <em class="replaceable"><code>user@domain</code></em>
</pre></div><p>
This displays the subscription record for
"<em class="replaceable"><code>user@domain</code></em>", which
typically consists of a copy of the initial subscription request, and
confirmation.</p></div><div class="refsect2" title="SENDING MESSAGES TO THE MAILING LIST"><a id="id329135" shape="rect"> </a><h3>SENDING MESSAGES TO THE MAILING LIST</h3><p>
The <em class="replaceable"><code>msg</code></em> commands reads an E-mail message on
standard input, and
mails the contents of the message to the mailing list's subscribers.</p><p>
If the <code class="literal">POST</code> option is set to
"<code class="literal">subscribers</code>", the message is
rejected unless the address in its From: header is a subscriber to this
mailing list.</p><p>
Control files <code class="filename">headeradd</code> and
<code class="filename">headerdel</code> are read,
and are applied to the message, as described previously.</p></div><div class="refsect2" title="MAILING LIST COMMANDS"><a id="id329178" shape="rect"> </a><h3>MAILING LIST COMMANDS</h3><a id="command" shape="rect"> </a><p>
Mailing list commands can be sent via E-mail to
<span class="command"><strong>couriermlm</strong></span> by
sending a message to
<code class="literal">&lt;list-<em class="replaceable"><code>command</code></em>@domain&gt;</code>. The
"<code class="literal">default</code>"
<a class="ulink" href="dot-courier.html" target="_top" shape="rect"><span class="citerefentry"><span class="refentrytitle">dot-courier</span>(5)</span>
</a>
file runs
<span class="command"><strong>couriermlm</strong></span> to receive mail for all addresses of this
form.</p><p>
<span class="command"><strong>couriermlm</strong></span> reads the <code class="envar">DEFAULT</code> environment
variable,
which is set by the <span class="application">Courier</span> mail server,
that indicates the specific command.  The available
commands are:</p><div class="variablelist"><dl><dt><span class="term">help</span></dt><dd><p>
A simple autoresponder.  <span class="command"><strong>couriermlm</strong></span>
mails the sender the contents of the <code class="filename">help.tmpl</code>
file.</p></dd><dt><span class="term">subscribe</span></dt><dd><p>
A request to subscribe to this mailing list.
<span class="command"><strong>couriermlm</strong></span> reads the sender's address in order to
determine what
address to subscribe.</p></dd><dt><span class="term">subscribe-<em class="replaceable"><code>name=domain</code></em></span></dt><dd><p>
Explicitly specify the
address to subscribe to the mailing list, instead of using a return
address. In the previous example, sending a message addressed to
<code class="literal">&lt;my-widgets-subscribe-john=domain.com@example.com&gt;</code> would
result in a subscription request for <code class="literal">&lt;john=domain.com&gt;</code>.
Any unusual punctuation characters in the address must be replaced by a
plus sign, followed by two hexadecimal digits that represent the
punctuation character's ASCII code.</p></dd><dt><span class="term">unsubscribe</span></dt><dd><p>
A request to unsubscribe to this mailing list.</p></dd><dt><span class="term">unsubscribe-<em class="replaceable"><code>name=domain</code></em></span></dt><dd><p>
Explicitly specify the address to unsubscribe from the mailing list.</p></dd><dt><span class="term">alias-subscribe</span></dt><dd><p>
Set up a write-only alias (see below).</p></dd><dt><span class="term">alias-subscribe-<em class="replaceable"><code>name=domain</code></em></span></dt><dd><p>
Explicitly specify
the subscriber address for which a write-only alias needs to be set up.</p></dd></dl></div><p>
There are other commands that are used internally for maintaining the
mailing list.</p></div><div class="refsect2" title="WRITE-ONLY ALIASES"><a id="id329383" shape="rect"> </a><h3>WRITE-ONLY ALIASES</h3><a id="wonly" shape="rect"> </a><p>
Write-only E-mail aliases can send messages to the mailing list, but they
do not receive any mailing list messages themselves. A write-only alias can be
set up by any subscriber.  Only one write-only alias is allowed per subscribed
E-mail address. Write-only aliases are not needed for mailing list that has
the <code class="literal">POST=all</code> option set.</p><p>
To set up a write-only alias, the subscriber sends a
<span class="command"><strong>couriermlm</strong></span> <code class="literal">alias-subscribe</code> command.
The subscriber's E-mail address can be
explicitly specified in a similar manner as the <code class="literal">subscribe</code>
command.</p><p>
The subject line of the E-mail message must contain the E-mail write-only
alias to be set up, and nothing else.
<span class="command"><strong>couriermlm</strong></span> responds with a
confirmation request, just like when subscribing to the list. This request
must be acknowledged in the same way.</p><p>
A subscriber's write-only alias can be changed at any time by repeating
this procedure.  The new alias replaces the previous one. To prevent abuse,
there's a limit of at most one <code class="literal">alias-subscribe</code> command
every 30 minutes.</p><p>
Leave the subject of the E-mail message blank in order to remove an
existing write-only alias,</p></div><div class="refsect2" title="SETTING UP A MAILING LIST DIGEST"><a id="id329449" shape="rect"> </a><h3>SETTING UP A MAILING LIST DIGEST</h3><a id="digest" shape="rect"> </a><p>
<span class="command"><strong>couriermlm</strong></span> supports mailing list digests.
Mailing list digests are
created as a second, separate, mailing list.
The <em class="replaceable"><code>create</code></em> command
initializes a second mailing list directory, and then additional configuration
takes place which links the main mailing list to the digest list.</p><p>
If the mailing list address is <code class="literal">list-address@example.com</code>, the
address of the digest version of the mailing list is usually
<code class="literal">list-address-digest@example.com</code>,
but it doesn't have to be this
address. The only requirement is that the directory for the digest version of
the mailing list must reside on the same file system as the directory for the
mailing list itself, and both must be owned by the same userid.</p><p>
To set up a mailing list digest, first proceed with the steps to create the
mailing list itself. After the mailing list is created and configured, proceed
as follows:</p><div class="variablelist"><dl><dt><span class="term">Create the digest list directory</span></dt><dd><p>
Execute the <em class="replaceable"><code>create</code></em> command to
create the digest version of the list:</p><div class="informalexample"><pre class="programlisting" xml:space="preserve">
/usr/bin/couriermlm create \
   <em class="replaceable"><code>/path/to/digest/list/directory</code></em> \
   ADDRESS=<em class="replaceable"><code>list-address-digest@example.com</code></em>
</pre></div><p>
Use the full pathname to the mailing list directory, and the address of
the digest version of the mailing list.</p></dd><dt><span class="term">Configure the digest list</span></dt><dd><p>
Execute the <em class="replaceable"><code>set</code></em> command to set any
appropriate options for the digest list.  There one important differences
to note: messages are not posted to the digest list directly, so there is
no moderation option, however the digest version of the list can have
moderated subscription requests.</p></dd><dt><span class="term">Link the two lists</span></dt><dd><p>
Set the <code class="literal">DIGEST</code> option for the main
mailing list, specifying the directory of the digest list. This keyword
lets <span class="command"><strong>couriermlm</strong></span> know that a digest version is
available.</p><div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>
You MUST set identical
<code class="literal">POSTARCHIVE</code> option for both the main list, and the digest
list.</p></div></dd><dt><span class="term">Create
<a class="ulink" href="dot-courier.html" target="_top" shape="rect"><span class="citerefentry"><span class="refentrytitle">dot-courier</span>(5)</span>
</a>
files</span></dt><dd><p>
It is necessary to create
<a class="ulink" href="dot-courier.html" target="_top" shape="rect"><span class="citerefentry"><span class="refentrytitle">dot-courier</span>(5)</span>
</a>
files for the digest list just like the main
list, except for some important differences, which are noted below.</p></dd><dt><span class="term">Create
<span class="citerefentry"><span class="refentrytitle">cron</span>(8)</span>
jobs</span></dt><dd><p>
It is also necessary to create cron
jobs for the digest list exactly like the main list, to run the
<em class="replaceable"><code>hourly</code></em> and <em class="replaceable"><code>daily</code></em>
cleanup.  It's possible to set up one set
of cron jobs to run <em class="replaceable"><code>hourly</code></em> and
<em class="replaceable"><code>daily</code></em> cleanups consecutively for both lists.</p></dd><dt><span class="term">Create a <em class="replaceable"><code>digest</code></em>
<span class="citerefentry"><span class="refentrytitle">cron</span>(8)</span>
job</span></dt><dd><p>
The <em class="replaceable"><code>digest</code></em>
creates and distributes the digest version of the list.
It can be executed by a
<span class="citerefentry"><span class="refentrytitle">cron</span>(8)</span>
job, or the command can be executed manually.</p></dd></dl></div><p>
The main mailing list is supported by three
<a class="ulink" href="dot-courier.html" target="_top" shape="rect"><span class="citerefentry"><span class="refentrytitle">dot-courier</span>(5)</span>
</a>
files, as previously described: the posting address, the owner forwarding
address, and the default address that handles administrative control messages.
In the following example, the names <code class="filename">$HOME/.courier-list</code>,
<code class="filename">$HOME/.courier-list-owner</code>, and
<code class="filename">$HOME/.courier-list-default</code> are used to represent each
one of
these files, and the following names are used to represent the
<a class="ulink" href="dot-courier.html" target="_top" shape="rect"><span class="citerefentry"><span class="refentrytitle">dot-courier</span>(5)</span>
</a>
files that correspond to the digest version of the
mailing list: <code class="filename">$HOME/.courier-list-digest</code>,
<code class="filename">$HOME/.courier-list-digest-owner</code>, and
<code class="filename">$HOME/.courier-list-digest-default</code>. Note, however, that
the
digest version of the mailing list can have any name, not necessary the name
of the list, followed by "<code class="literal">digest</code>".</p><p>
The contents of both <code class="filename">$HOME/.courier-list</code>
<code class="filename">$HOME/.courier-list-digest</code> must be the same.
Sending a message
to the digest address should really end up sending a message to the main
mailing
list. Do not put the address of the digest mailing list directory in
<code class="filename">$HOME/.courier-list-digest</code>,
instead specify the address of the
main mailing list directory.
Just copy <code class="filename">$HOME/.courier-list</code> to
<code class="filename">$HOME/.courier-list-digest</code>.</p><p>
However, the contents of
<code class="filename">$HOME/.courier-list-digest-default</code>
must specify the directory of the digest version of the mailing list. The
digest list is managed separately from the main list, it has its own
subscriber list that is separate from the list of subscribers to the main
list.  <code class="filename">$HOME/.courier-list-default</code> can simply be copied to
<code class="filename">$HOME/.courier-list-digest-default</code>, then the directory
can be changed in the latter.</p><p>
<code class="filename">$HOME/.courier-list-owner</code> may use the same mailing list
owner
address as <code class="filename">$HOME/.courier-list-digest-owner</code>, or it can
specify a
different address. The both the digest and the main mailing list can have the
same mailing list owner/moderator, or have a different owner/moderator.</p><p>
The following command must be executed in order to link the two lists
together:</p><div class="informalexample"><pre class="programlisting" xml:space="preserve">
/usr/bin/couriermlm set \
    <em class="replaceable"><code>/path/to/main/list/directory</code></em> \
    DIGEST=<em class="replaceable"><code>/path/to/digest/list/directory</code></em>
</pre></div><p>
Setting the <code class="literal">DIGEST</code> option on the main list lets
<span class="command"><strong>couriermlm</strong></span> know that a digest version is available. The
<code class="literal">DIGEST</code> option must either use an absolute pathname, or a
pathname
that's relative to the main list directory (NOT the current directory).</p><p>
When the <code class="literal">DIGEST</code> option is set, messages are simultaneously
distributed to the mailing list's subscribers, saved in the
<code class="filename">archive</code> subdirectory of the main list, then placed in the
<code class="filename">modqueue</code> subdirectory of the digest list.
Digest list do not
employ moderation -- any moderation must take place on the main list -- so the
<code class="filename">modqueue</code> subdirectory is recycled to compile individual
messages
for the digest.</p><p>
Finally, something needs to be done in order to actually distribute the
digest to the digest list's subscribers.  This is done by running the
following command:</p><div class="informalexample"><pre class="programlisting" xml:space="preserve">
/usr/bin/couriermlm digest <em class="replaceable"><code>/path/to/digest/directory</code></em> <em class="replaceable"><code>N</code></em> <em class="replaceable"><code>H</code></em>
</pre></div><p>
This command creates a digest, and sends it out.
The <em class="replaceable"><code>N</code></em> and <em class="replaceable"><code>H</code></em>
arguments are optional. The digest is created only if there's at least
<em class="replaceable"><code>N</code></em> messages that are waiting to be sent in the
digest list, or if the
oldest message is at least <em class="replaceable"><code>H</code></em> hours old.
Both options default to 0, so the default behavior is to send a digest
with all unsent messages.</p><p>
Note that when the digest is created, ALL unsent messages are packaged into
the digest, even if some messages are more recent than the time interval
specified by the <em class="replaceable"><code>H</code></em> option. A
<span class="citerefentry"><span class="refentrytitle">cron</span>(8)</span>
job can be set up to
run the <em class="replaceable"><code>digest</code></em> command, or run it manually.</p><p>
<span class="command"><strong>couriermlm</strong></span> automatically provides
the <code class="literal">From:</code>,
<code class="literal">To:</code> headers on a message digest. Additional headers may be
specified by the <code class="filename">headeradd</code> file in the digest list
directory. The
<code class="filename">headerdel</code> file has no effect. Note that the individual
messages
in the digest are copies of the messages from the main mailing list, and thus
have the <code class="filename">headeradd</code> and <code class="filename">headerdel</code>
headers processed
from the main mailing list directory.</p></div></div><div class="refsect1" title="BUGS"><a id="id330015" shape="rect"> </a><h2>BUGS</h2><p>
<span class="command"><strong>couriermlm</strong></span> will not work if the
<span class="application">Courier</span> mail server's support for
<a class="ulink" href="dot-courier.html" target="_top" shape="rect"><span class="citerefentry"><span class="refentrytitle">dot-courier</span>(5)</span>
</a>
extensions is disabled.</p></div><div class="refsect1" title="SEE ALSO"><a id="id330049" shape="rect"> </a><h2>SEE ALSO</h2><p>
<a class="ulink" href="courier.html" target="_top" shape="rect"><span class="citerefentry"><span class="refentrytitle">courier</span>(8)</span>
</a>,
<a class="ulink" href="dot-courier.html" target="_top" shape="rect"><span class="citerefentry"><span class="refentrytitle">dot-courier</span>(5)</span>
</a>,
<a class="ulink" href="webmlmd.html" target="_top" shape="rect"><span class="citerefentry"><span class="refentrytitle">webmlmd</span>(1)</span>
</a>.</p></div></div></body></html>