-
Notifications
You must be signed in to change notification settings - Fork 159
Expand file tree
/
Copy pathhypermail.html
More file actions
685 lines (620 loc) · 29.8 KB
/
Copy pathhypermail.html
File metadata and controls
685 lines (620 loc) · 29.8 KB
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
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head>
<meta charset="utf-8" />
<title>Hypermail Documentation</title>
<link rel="author" href="https://github.com/hypermail-project" />
<link rel="stylesheet" href="hypermail-doc.css" />
</head>
<body>
<header>
<h1><img src="hypermail.png" width=
"60" height="60" alt="hypermail logo" /> Hypermail</h1>
<hr />
<nav aria-labelledby="contents">
<h2 id="contents">Contents:</h2>
<ul>
<li><a href="#1">What is Hypermail?</a></li>
<li><a href="#2">Usage</a></li>
<li><a href="#3">Command-Line Options</a>
<ul>
<li><a href="#3.1">Input and Output Options</a></li>
<li><a href="#3.2">Archive Interface Options</a></li>
<li><a href="#3.3">Updating Options</a></li>
<li><a href="#3.4">Miscellaneous Options</a></li>
</ul>
</li>
<li><a href="#4">Configuration Options</a></li>
<li><a href="#5">Order of Options Processing</a></li>
<li><a href="#6">Other Things</a>
<ul>
<li><a href="#6.1">Filenames</a></li>
<li><a href="#6.2">Sorting</a></li>
<li><a href="#6.3">Running Hypermail automatically</a></li>
<li><a href="#6.4">Including HTML in messages</a></li>
</ul>
</li>
<li><a href="#6b">Running Hypermail Automatically</a></li>
<li><a href="#7">Getting Help With Hypermail</a></li>
<li><a href="#8">Getting Hypermail Software</a></li>
<li><a href="#9">Credits</a></li>
<li><a href="#10">See Also</a></li>
</ul>
</nav>
</header>
<main>
<hr />
<h2><a id="1" href="#">What is Hypermail?</a></h2>
<strong>Hypermail</strong> is a program that takes a file of mail
messages in UNIX mailbox format and generates a set of
cross-referenced HTML documents. Each file that is created
represents a separate message in the mail archive and contains
links to other articles, so that the entire archive can be browsed
in a number of ways by following links. Archives generated by
Hypermail can be incrementally updated, and Hypermail is set by
default to only update archives when changes are detected.
<p>Each HTML file that is generated for a message contains (where
applicable):</p>
<ul>
<li>the subject of the article,</li>
<li>the name and email address of the sender,</li>
<li>the date the article was sent,</li>
<li>links to the next and previous messages in the archive,</li>
<li>a link to the message the article is in reply to, and</li>
<li>a link to the message next in the current thread.</li>
</ul>
<p>In addition, Hypermail will convert references in each message
to email addresses and URLs to hyperlinks so they can be selected.
Email addresses can be converted to <strong>mailto:</strong> URLs
or links to a CGI mail program.</p>
<p>To complement each set of HTML messages, four index files are
created which sort the articles by date received, thread, subject,
and author. Each entry in these index files are links to the
individual articles and provide a bird's-eye view of every archived
message.</p>
<p>To see what Hypermail can do, take a look at these
Hypermail-produced archives:</p>
<ul>
<li><a href="https://lists.w3.org/Archives/Public/">W3C Public Mailing List Archives</a> (3.0)</li>
<li><a href="http://www.hypermail-project.org/archive/">Hypermail
Development Archives</a> (2.3)</li>
<li><a href="http://www.faqs.org/faq-maintainers/mail-archive">FAQ
Maintainers Archives</a> (2.2)</li>
</ul>
<hr />
<h2><a id="2" href="#">Usage</a></h2>
<pre>
Usage: hypermail [options]
Options:
-a URL : URL to other archives
-A : Maintain an mbox archive
-b URL : URL to archive information
-c file : Configuration file to read in
-d dir : The directory to save HTML files in
-g : Build a GDBM header cache
-i : Read messages from standard input
-l label : What to name the output archive
-m mbox : Mail archive to read in
-M : Use metadata
-n listaddr : The submission address of the list
-o keyword=val: Set config item
-p : Show progress
-s htmlsuffix : HTML file suffix (.html, .htm, ..)
-u : Append all input messages
-v : Show configuration variables only
-V : Show version information and exit
-x : Overwrite previous messages
-X : Write haof XML files
-0 number : Delete messages
-1 : Read only one mail from input
-L lang : Specify language to use (de en es fi fr is pl pt sv no el gr ru it )
</pre>
<p>Using the flags <strong>-h</strong>, or <strong>-?</strong> with
Hypermail will display this usage summary.</p>
<hr />
<h2><a id="3" href="#">Command-Line Options</a></h2>
<a id="3.1" href="#"><strong>Input and Output
Options:</strong><br /></a>
<blockquote><strong>-i</strong>,<br />
<strong>-m</strong> <em>"mailbox"</em>,<br />
<strong>-d</strong> <em>"directory"</em>,<br />
<strong>-c</strong> <em>"file"</em></blockquote>
<p>To tell Hypermail what mailbox to read in, use the
<strong>-m</strong> option. If articles will be sent to Hypermail
through standard input, use the <strong>-i</strong> option. Note
that the <strong>-m</strong> and <strong>-i</strong> options can't
be used together! By default, Hypermail will look for a file called
<strong>mbox</strong> to read its articles in from.</p>
<p>The <strong>-d</strong> option specifies the directory to put
the HTML files and index files that are created into. If the
directory doesn't exist, a new one will be created with the name
that is specified. If the <strong>-d</strong> option isn't used,
Hypermail will look for a directory with the same name as the
mailbox or will create one if needed.</p>
<pre>
example 1: hypermail -m "wu-ftpd" -d "/wu-ftpd"
example 2: cat "/var/spool/mail/wu-ftpd" | hypermail -i
</pre>
<ol>
<li>This example reads the articles in <strong>wu-ftpd</strong> and
will save the output in the <strong>/wu-ftpd</strong>
directory.</li>
<li>This reads the file <strong>/var/spool/mail/wu-ftpd</strong>
from standard input and will save the output in a directory called
<strong>archive</strong> in the same directory Hypermail was run
from.</li>
</ol>
<p>Note that Hypermail can only read messages in the UNIX mailbox
format! Such archives are typically RFC 2822 mail messages appended
to each other that look similar to this:</p>
<pre>
From [email protected] Mon Jan 1 00:01:30 1994
Date: Mon, 1 Jan 1994 00:01:15 PDT
From: [email protected]
Subject: Hello, world!
Hi, everyone, just saying hello!
From [email protected] Mon Jan 1 00:02:00 1994
Date: Mon, 1 Jan 1994 00:01:45 PDT
...
</pre>
<p>The messages are typically separated by lines in this
format:</p>
<pre>
From [email protected] Fri Jul 1 00:18:20 1994
</pre>
<p>The <strong>-c</strong> option tells Hypermail to read in
settings from a <a href="hmrc.html">configuration file</a>. By
default, the program will attempt to read settings from a file
called <strong>.hmrc</strong> in the user's home directory if it
exists.</p>
<p>In the configuration file, variables are set in the following
manner:</p>
<blockquote><strong>variable = number<br />
variable = "string"</strong></blockquote>
<p>The complete set of variables that Hypermail recognizes is
described in the <a href="hmrc.html">Configuration Options</a>
page.</p>
<p>To get you up to speed, a <a href="dot.hmrc-sample">sample annotated hypermail configuration file</a> is included in the docs dir.</p>
<p><a id="3.2" href="#"><strong>Archive Interface
Options:</strong></a></p>
<blockquote><strong>-l</strong> <em>"label"</em>,<br />
<strong>-b</strong> <em>"About URL"</em>,<br />
<strong>-a</strong> <em>"Other Archives
URL"</em></blockquote>
<p>The <strong>-l</strong> option tells Hypermail what to call the
archive - the name that is specified will be in the title of the
index pages so users know what sort of messages are being
archived.</p>
<p>The <strong>-a</strong> option includes a link labelled "Other
mail archives" in the index pages to any specified URL. This way
users who are looking at the archive have the opportunity to go to
pointers to other mail archives. By default, this will be a pointer
to the parent directory in which the archive files reside.</p>
<p>The <strong>-b</strong> option includes a link labelled "About
this archive" in the index pages to any specified URL. This way
users who are looking at the archive have the opportunity to go to
information about the archive.</p>
<pre>
example: hypermail -l "WU-FTPD Development Archives"
-a "http://www.landfield.com/wu-ftpd/"
-b "http://www.landfield.com/wu-ftpd/mail-archive/"
</pre>
<p>In the index files for the archive, the above setting will
produce something like this:</p>
<blockquote><strong>(top of page)</strong>
<p><strong>WU-FTPD Archives</strong></p>
<ul>
<li><a href="http://landfield.com/wu-ftpd/"><strong>About this
archive</strong></a></li>
<li><a href=
"http://landfield.com/wu-ftpd/mail-archive/"><strong>Other mail
archives</strong></a></li>
</ul>
<p><strong>(list of indexed articles below)</strong></p>
</blockquote>
<p><a id="3.3" href="#"><strong>Updating
Options:</strong><br /></a></p>
<blockquote><strong>-x</strong>,<br />
<strong>-u</strong></blockquote>
<p>The <strong>-x</strong> option tells Hypermail to explicitly
overwrite any previous HTML files that may exist. Use this option
only when it is desirable to completely rewrite the entire
archive.</p>
<p>The <strong>-u</strong> option tells Hypermail to add message(s)
to the end of the existing HTML file archive and integrate them
into it by links and cross-references. All archive index files will
be regenerated to include the new message.</p>
<p>Hypermail used to require that you only send it one message at a
time when using the <strong>-u</strong> option, but it should now
work reasonably when given mailboxes containing multiple
messages.</p>
<p>When using the <strong>-u</strong> option, don't send any
messages that Hypermail has already processed. If you want
Hypermail to recognize that some messages are old messages that
shouldn't be added to the archive again, send it a mailbox with a
complete set of messages and avoid the <strong>-u</strong>
option.</p>
<pre>
example 1: cat "one.letter" | hypermail -i -u -d "/wu-ftpd/mail-archives"
example 2: hypermail -u -m "one.letter" -d "/wu-ftpd/mail-archives"
example 3: hypermail -m "mailbox" -d "/wu-ftpd/mail-archives" -x
example 4: hypermail -m "mailbox" -d "/wu-ftpd/mail-archives"
</pre>
<ol>
<li>This tells Hypermail to take the article it receives from
standard input and integrate it with the archive under the
<strong>wu-ftpd/mail-archives</strong> directory. If no archive
exists, a new one will be created with the specified letter as the
first file of the archive.</li>
<li>This does the same thing, except that the letter is read in
from a file that contains only that letter.</li>
<li>With these options, Hypermail will read in the articles from
<strong>mailbox</strong> and write over any existing files in the
<strong>wu-ftpd/mail-archives</strong> directory if they exist. If
no archive exists, a new one will be created.</li>
<li>With these options, Hypermail will read in the articles from
<strong>mailbox</strong> and only write new articles - it will not
overwrite any existing archive files.</li>
</ol>
<p>Note that no matter what options are specified, the index files
are always rewritten. The date when Hypermail was last run is
included in index pages, so it's easy to tell when the archive was
last updated.</p>
<p><a id="3.4" href="#"><strong>Miscellaneous
Options</strong><br /></a></p>
<blockquote><strong>-y</strong><br />
<blockquote><strong>-p</strong><br />
<strong>-v</strong><br />
<strong>-V</strong></blockquote>
<p>The <strong>-y</strong> option tells hypermail to do a dry-run; that is, it
won't generate any HTML archive; however it will output the file names and
Message-IDs associated to them that it would have generated in the archive. It
may help you see what issues you may have when upgrading from one hypermail
version to a newever one.</p
<p>The <strong>-p</strong> option shows a progress report as
Hypermail reads in and writes out messages - the number of files
that Hypermail is reading and writing and the file names of the
directory and files created are shown. This information is written
to standard output.</p>
<p>The <strong>-v</strong> option shows the configuration variables
and their values that Hypermail would use if it was run with the
same <a href="hmrc.html">configuration file</a> and command line
options. This is useful when starting up a new list or modifying a
list configuration file. Once the information is displayed,
Hypermail terminates and no actual processing occurs.</p>
<p>The <strong>-V</strong> option prints the Hypermail version
information. Once the information is displayed, Hypermail
terminates and not actual processing occurs.</p>
<p>The <strong>-0</strong> option list message numbers that should
be deleted from the html archive. The mbox is not changed. It is
equivalent to the <a href=
"hmrc.html#delete_msgnum">delete_msgnum</a> option.</p>
<hr />
<h2><a id="4" href="#">Configuration Options</a></h2>
Hypermail has many variables that can be set as environment
variables or as variables in the specified <a href=
"hmrc.html">configuration file</a>. For instance, using the C
shell, one could define variables in this manner:
<pre>
setenv HM_MBOX /home/john/my_mailbox
setenv HM_FILEMODE 0600
</pre>
<p>In the configuration file, variables must be in lowercase and
separated by their values with an equals (<strong>=</strong>) sign.
Blank lines and lines beginning with the <strong>#</strong>
character are skipped:</p>
<pre>
mbox = "/home/john/my_mailbox"
filemode = 0600
</pre>
While the example uses quotes (<strong>"</strong>), they is not
required when used in the configuration file.
<p>Below is a list of the more important configuration variables.
For a complete list, see <a href="hmrc.html">hmrc.html</a>.</p>
<dl>
<dt><strong>HM_LABEL "label name"</strong></dt>
<dd>Define this as the default label to put in archives.</dd>
<dt><strong>HM_ARCHIVES "URL"</strong></dt>
<dd>This will create a link in the archived index pages to the
specified URL. Define as <strong>"NONE"</strong> to omit such a
link. See also <a href=
"hmrc.html#custom_archives">custom_archives</a>.
</dd>
<dt><strong>HM_HMAIL "list submission address"</strong></dt>
<dd>This is the email address used to send a new message to a
hypermail archive. "NONE" means don't use it. Since this is
different for each hypermail archive, you should probably leave it
set to "NONE" here, and let it be specified at runtime by
command-line parameters in the list specific configfile.<br />
See also <a href="hmrc.html#newmsg_command">newmsg_command</a> and
<a href="hmrc.html#replymsg_command">replymsg_command</a>.
</dd>
<dt><strong>HM_DIR "directory"</strong></dt>
<dd>This is the default directory that Hypermail will look for when
creating and updating archives. If defined as
<strong>"NONE"</strong>, the directory name will be the same name
as the mailbox read in.
</dd>
<dt><strong>HM_MBOX "filename"</strong></dt>
<dd>This is the default mailbox to read messages in from. Define
this with a value of <strong>"NONE"</strong> to read from standard
input as the default.
</dd>
<dt><strong>HM_STRIPSUBJECT "text"</strong></dt>
<dd>A string to be stripped from all subject lines. Helps unclutter
mailing lists which add tags to subject lines.
</dd>
<dt id="folder_by_date"><strong>HM_FOLDER_BY_DATE ="strftime-date-format"</strong></dt>
<dd>This string causes the messages to be put in subdirectories by
date. The string will be passed to strftime(3) to generate
subdirectory names based on message dates. Suggested values are
"%y%m" or "%b%y" for monthly subdirectories, "%Y" for yearly,
"%G/%V" for weekly. Do not alter this for an existing archive
without removing the old html files. If you use this and update the
archive incrementally (e.g. with -u), you must use the
<a href="hmrc.html#usegdbm">usegdbm</a> option.<br />
See also <a href="hmrc.html#monthly_index">monthly_index</a>.
</dd>
<dt id="isodate"><strong>HM_ISODATE boolean_number</strong></dt>
<dd>Set this to On to display article received dates in YYYY-MM-DD
HH:MM:SS format. If used with the
<a href="hmrc.html#gmtime">gmtime</a> option, a Z will be inserted between
the DD and HH.<br />
See also <a href="hmrc.html#eurodate">eurodate</a> and
<a href="hmrc.html#dateformat">dateformat</a>.
</dd>
<dt><strong>HM_LANGUAGE "language-id"</strong></dt>
<dd><strong>NB non-english language files have not been updated since long time ago
and are now lagging in translation.</strong><br />
This is a two-letter string specifying the default language to
use, or a longer string specifying a language and locale. Set this
the value of the language table you wish to use when running and
generating archives. See also <a href=
"hmrc.html#iso2022jp">iso2022jp</a> and <a href=
"hmrc.html#eurodate">eurodate</a>.<br />
<br />
Current supported languages, with their default locales:
<blockquote>
de (de_DE) - German<br />
en (en_US) - English<br />
es (es_ES) - Spanish<br />
fi (fi_FI) - Finnish<br />
fr (fr_FR) - French<br />
el (el) - Greek<br />
gr (el_GR) - Greek<br />
is (is_IS) - Icelandic<br />
no (no_NO) - Norwegian<br />
pl (pl_PL) - Polish<br />
pt (pt_BR) - Brazilian Portuguese<br />
ru (ru_RU) - Russian<br />
sv (sv_SE) - Swedish
</blockquote>
The directory /usr/share/i18n/locales on many systems has the
locale codes that are available on that system.
</dd>
<dt><strong>HM_INCREMENT -1, 0, or 1</strong><br /></dt>
<dd>Define as <strong>1</strong> to append all input messages to the
end of existing archives.<br />
Define as <strong>0</strong> for it to read a mailbox that
corresponds to the entire archive. If there are any existing html
messages, it will figure out which ones at the end of the mailbox
are new, and add only those that haven't been converted yet.<br />
Define as <strong>-1</strong> to have hypermail figure out whether
the input is entirely new messages to be appended or whether it
contains messages that are already in the archive. A value of -1
cannot be used with the mbox_shortened option or with the -i
command line option or with mbox = NONE.<br />
<br />
</dd>
<dt id="append"><strong>HM_APPEND boolean_number</strong></dt>
<dd>Set this to On to maintain a parallel mbox archive. The file
name defaults to mbox in the directory specified by -d or
dir.<br />
See also <a href="hmrc.html#append_filename">append_filename</a>
and <a href="hmrc.html#txtsuffix">txtsuffix</a>.
</dd>
<dt><strong>HM_SHOWHTML 0, 1, or 2</strong></dt>
<dd>Define as <strong>1</strong> to show the articles in a
proportionally-spaced font rather than a fixed-width
(monospace) font. Setting this option to 1 also tells
Hypermail to attempt to italicize quoted passages in articles.
<p>Define as <strong>2</strong> for more complex conversion to html
similar to that in
<a href="http://www.cs.wustl.edu/~seth/txt2html/">txt2html.pl</a>. Showhtml
= 2 will normally produce nicer looking results than showhtml = 1,
and showhtml = 0 will look pretty dull, but 1 and 2 run risks of
altering the appearance in undesired ways.</p>
</dd>
<dt><strong>HM_LINKQUOTES boolean_number</strong></dt>
<dd>Set this to On to create fine-grained links from quoted text to
the text where the quote originated. It also improves the threads
index file by more accurately matching messages with replies. Note
that this may be rather cpu intensive (see the
<a href="hmrc.html#searchbackmsgnum">searchbackmsgnum</a> option to alter
the performance).
</dd>
<dt><strong>HM_ABOUT "URL"</strong></dt>
<dd>This will create a link in the archived index pages to the
specified URL. Define as <strong>"NONE"</strong> to omit such a link.
</dd>
<dt><strong>HM_MAILTO address</strong></dt>
<dd>The address of the contact point that is put in the HTML header
line
<blockquote>
<code><strong><LINK REV=made HREF=mailto:MAILTO></strong></code>
</blockquote>
The <code><LINK...></code> header can be disabled by default by setting
<code>HM_MAILTO</code> to "<code>NONE</code>".
</dd>
<dt><strong>HM_FILTER_OUT expression</strong></dt>
<dd> Delete messages with
headers matching regular expressions
(<a href="http://www.pcre.org/">PCRE</a> syntax).
See also <a href="hmrc.html#filter_require">filter_require</a>,
<a href="hmrc.html#filter_out_full_body">filter_out_full_body</a>,
and <a
href="hmrc.html#filter_require_full_body">filter_require_full_body</a>.<br />
</dd>
<dt><strong>HM_DOMAINADDR "domainname"</strong></dt>
<dd>Set this to the domainname you want added to a mail address
appearing in the RFC2822 field which lack a hostname. When the list
resides on the same host as the user sending the message, it is
often not required of the MTA to domain-ize these addresses for
delivery. In such cases, Hypermail will add the DOMAINADDR to the
email address. If defined as NONE, this feature is turned off.
</dd>
<dt><strong>HM_USEMETA [ 0 | 1 ]</strong></dt>
<dd>This option allows you to use metadata to store the content
type of a MIME attachments and, later on, when a user browses the
attachment, send back this information in the HTTP Content-Type
header. When set to <strong>1</strong>, the Content-Type header of
a MIME attachment will be stored in a metadata file. Let us say
that the MIME attachments for a message are stored in directory
<strong>att-num</strong>. The metadata for those attachments will
then be stored in directory <strong>att-num/.meta</strong>. If a
MIME attachment is stored in file <strong>att-file</strong>, its
metadata will be stored in file <strong>att-file.meta</strong>.
This convention is directly compatible with the Apache server
handling of metadata.
</dd>
<dt><strong>HM_REVERSE boolean_number</strong></dt>
<dd>Defining this variable as <strong>1</strong> will reverse-sort
the article entries in the date and thread index files by the date
they were received. That is, the most recent messages will appear
at the top of the index rather than the other way around.
</dd>
<dt><strong>HM_MHTMLHEADERFILE "path"</strong></dt>
<dd>Define path as the path to a file containing valid HTML
formatting statements that you wish to included at the top of every
message page. Hypermail will print this file as the header of the
message so make sure it contains <strong><HTML>,
<HEAD>, and <BODY></strong> and other statements that
suit your local customized needs.<br />
See also <a href="hmrc.html#ihtmlheaderfile">ihtmlheaderfile</a>,
<a href="hmrc.html#ihtmlfooterfile">ihtmlfooterfile</a>, and
<a href="hmrc.html#mhtmlfooterfile">mhtmlfooterfile</a>.
</dd>
<dt><strong>HM_CONFIGFILE "filename"</strong></dt>
<dd>This is the default configuration file to read settings in
from. This can only be specified as an environment variable. If the
first character is "~", Hypermail will look for the file under the
current user's home directory.
</dd>
</dl>
<hr />
<h2><a id="5" href="#">Order of Options Processing</a></h2>
<p>Settings are processed in this order:</p>
<ol>
<li>From the program's hard-wired internal defaults (specified in
defaults.h and setup.c),</li>
<li>From runtime environment variables,</li>
<li>From the configuration file,</li>
<li>From command-line options.</li>
</ol>
<hr />
<h2><a id="6" href="#">Other Things</a></h2>
<h3><a id="6.1" href="#">Filenames</a></h3>
<p>In the specified directory, articles will be read out in the order
that they were read in from a mailbox or standard input. Filenames
start at zero and increase in this fashion: <strong>0000.html, 0001.html, 0002.html</strong>,
etc. In the same directory:</p>
<ul>
<li><strong>date.html</strong> is the index of articles sorted by
the date they were received by the system's mail daemon.</li>
<li><strong>thread.html</strong> is the index of articles sorted by
thread first, then the date they were received.</li>
<li><strong>subject.html</strong> is the index of articles sorted
by subject. Any "Re:" prefixes in front of subjects will have been
stripped out.</li>
<li><strong>author.html</strong> is the index of articles sorted by
the first word of the author's name. If the author's name can't be
determined, their email address will be substituted.</li>
<li>One of the above files will be called
<strong>index.html</strong> and is the default index that users can
go to when entering the archive.</li>
</ul>
<h3><a id="6.2" href="#">Sorting</a></h3>
<p>In the date and thread index files, note that these lists are sorted
by the date the articles were received by the system's mail daemon,
not by the date they were written on. The order of articles in the
date index may not necessarily match the order in which the article
files are written and linked together. Because of this, it is a good
idea to make sure the mailbox is sorted by date with the most recent
messages towards the bottom.</p>
<h3><a id="6.3" href="#">Running Hypermail automatically</a></h3>
<p>The following are some tips on how to make hypermail archive incoming
messages on-the-fly.</p>
<h4>Sendmail and qmail aliases</h4>
<p>All that's needed to start archiving email
messages is to set up Hypermail to do incremental updates in your
<strong>/etc/aliases</strong> file (assuming that you use
<strong>sendmail</strong> or something that works like it to
deliver mail). Here's what an entry might look like (the last line
is one unbroken line):</p>
<blockquote><strong>#<br />
# WU-FTPD Mailing List Archives<br />
#<br />
wulist: "|/usr/local/bin/hypermail -i -u -d /wu-ftpd/mail-archive
-l \"WU-FTPD Mailing List Archive\""</strong></blockquote>
<p>After adding the entry, make sure <strong>newaliases</strong> is
run to update the mail aliases. This entry will run Hypermail and
update/create the archive whenever a new message is received.</p>
<p> Because <strong>sendmail</strong> may run Hypermail as different users, you
will want to make sure that archive directories and files are made
readable and writeable by a trusted sendmail user (or read/writable
by everyone if you can't do that) when they are created. This will
ensure that there will be no problems incrementally updating the
archive.</p>
<p>If you use qmail instead of sendmail, you probably want to
create a file /var/qmail/alias/.qmail-<mylistemailaddress>
containing something like this:</p>
<blockquote><strong>|/usr/local/bin/hypermail -i -u -d
/wu-ftpd/mail-archive -l \"WU-FTPD Mailing List
Archive\"</strong></blockquote>
<h4>Smartlist / Procmail</h4>
<p>If you are using <a href="https://github.com/procmail-org/SmartList">smartlist</a>,
you can call hypermail automatically by enabling rc.local.s20 and
adding a filter. You may also use this filter in a procmail rule. Note that in both cases, we're relying on smartlist/procmail's locks insted of hypermail's:</p>
<blockquote><strong>
:0 cw
| /usr/local/bin/hypermail -o uselock=0 -i -u -d
/wu-ftpd/mail-archive -l \"WU-FTPD Mailing List
Archive\"</strong></blockquote>
<h4>Other ways of automatizing hypermail</h4>
<p>On linux, cronjobs and <a href="https://en.wikipedia.org/wiki/Inotify">inotify</a> may be two other possibilities for running hypermail.</p>
<hr />
<h2><a id="7" href="#">Getting Hypermail Software</a></h2>
<p>Please visit <a href="https://github.com/hypermail-project/hypermail">The Hypermail Project github repository</a> to
download the latest stable version of Hypermail as well as follow its
development.</p>
<p>Hypermail is available free of charge under <a href="a href="http://www.fsf.org/copyleft/gpl.html">GNU Public License version 3 (GPLv3)</a>. Please read the LICENSES.txt file for licenses that cover libraries and some functions that are used by Hypermail.</p>
<hr />
<h2><a id="8" href="#">Getting Help With Hypermail</a></h2>
<p>We don't run any mailing lists anymore. We rely on github for reporting issues, feature requests, bug fixes, publishing releases, and tracking development.</p>
<p>If you're interested in the past history of hypermail and design decisions, you can browse the hypermail developer's <a href="https://hypermail-project.org/archive/index.html">mailing list archives</a> (<a href="https://web.archive.org/web/20120220004045/https://hypermail-project.org/archive/index.html">mirror</a>), covering the 1998-2010 activity period.</p>
<hr />
<h2><a id="9" href="#">Credits</a></h2>
<p>Hypermail was originally developed and designed by
<a href="mailto:[email protected]">Tom Gruber</a> for Enterprise
Integration Technologies (EIT) in Common Lisp. It was later
rewritten in C by <a href="mailto:[email protected]">Kevin Hughes</a>
while at EIT.</p>
<p>Hypermail is currently fostered by
<a href="https://github.com/hypermail-project/hypermail">José Kahan</a>.</p>
<p>Please refer to the <a href="credits.html">credits</a> page for a list of
people who have contributed to the hypermail project.</p>
<hr />
<h2><a id="10" href="#">See Also</a></h2>
<blockquote><strong>hypermail(1)</strong>,
<strong>hmrc(4)</strong>, <strong><a href=
"hmrc.html">Hypermail List Configuration File</a></strong>,
<strong><a href="customizing.html">Customizing Hypermail
Pages</a></strong>, <strong><a href="archive_search.html">Adding
a Search Engines to your Hypermail
Archive</a></strong></blockquote>
<hr />
<p><small><em><strong>Last updated May 24, 2023</strong></em></small></p>
</main>
</body>
</html>