|
|
1.1 root 1: .\" This file is automatically generated. Do not edit!
2: .po +.75i
3: .de $c \" Major Heading printer
4: .ce
5: .b "\\s12\\n+(ch.\\ \\$1\\s0" \" 12 Point Bold Header
6: .(x
7:
8: \ \ \ \\n(ch.\\ \\ \\$1
9: .)x
10: .sp 45p \" 45 point space or about 1/2 inch
11: ..
12: \".nr xs .15v \" Put index entries closer together
13: .(x
14:
15: Section
16: .)x _
17: .de $0 \" Sub-Heading macro called AFTER printing the heading
18: .(x
19: .sp .3v
20: .ti .5i
21: \\$1
22: .)x
23: ..
24: .de $s \" Macro to print footnote separator
25: \"\l'2i' \" No line drawn
26: .if n \
27: . sp 1.3 \" But extra space to make up for it.
28: ..
29: .fc ^ ~ \" The characters ^ and ~ CANNOT BE USED
30: \" throughout this document except as field
31: \" delimiter & pad indicator!
32: .he ''-%-''
33: .ll 32P \" 32 Picas or about 5+1/3 inch Line Length
34: .if n .ll 72m \" Use 72 ems for nroff
35: .nr ss 30p \" 30 point space before section titles
36: .nr fm 5v \" Rand likes bigger than normal [3v] bottom margins
37: .nr bm 7v \" ditto
38: .ds . \\fB.\\fP\\h'-(1m/3)' \" Bold period to stand out.
39: .ds << <\\h!-(\\w'<'/2)!<
40: .ds >> >\\h!-(\\w'>'/2)!>
41: .ds ** \v'-3p'\s+1*\s0\v'+3p'
42: .so version.rf
43: .tp
44: .(l C
45: \fIdiscard this page\fR
46: .sp 4
47: The Rand \fIMH\fR
48: Message Handling
49: System:
50: Administrator's Guide
51: .sp
52: UCI Version
53: .sp 2
54: \*(td
55: \*(MH
56: .)l
57: .++ C
58: .+c INTRODUCTION
59:
60: .uh "Scope of this document"
61: .pp
62: This is the Administrator's Guide to \fIMH\fR.
63: If you don't maintain an \fIMH\fR system,
64: don't read this;
65: the information is entirely too technical.
66: If you are a maintainer,
67: then read this guide until you understand it,
68: follow the advice it gives,
69: and then forget about the guide.
70: .pp
71: Before continuing, I'll point out two facts:
72: .sp 2
73: .(l C
74: \fIThis document will never contain all the information
75: you need to maintain MH.
76: .sp
77: Furthermore, this document will never contain everything
78: I know about maintaining MH.\fR
79: .)l
80: .sp 2
81: \fIMH\fR,
82: and mailsystems in general,
83: are more complex than most people realize.
84: A combination of experience, intuition, and tenacity is required to maintain
85: \fIMH\fR properly.
86: This document can provide only guidelines for bringing up an \fIMH\fR system
87: and maintaining it.
88: There is a sufficient amount of customization possible that not all events or
89: problems can be forseen.
90:
91: .uh "Summary"
92: .pp
93: During \fIMH\fR generation,
94: you specify several configuration constants to the \fImhconfig\fR program.
95: These directives take into consideration such issues as hardware and
96: operating system dependencies in the source code.
97: They also factor out some major mailsystem administrative decisions
98: that are likely to be made consistantly at sites with more than one host.
99: The manual entry \fImh\-gen\fR\0(8) describes all the static configuration
100: directives.
101: .pp
102: However,
103: when you install \fIMH\fR you may wish to make some site\-specific
104: or host\-specific changes which aren't hardware or even software related.
105: Rather, they are administrative decisions.
106: That's what this guide is for: it describes all of the dynamically tailorable
107: directives.
108: .pp
109: Usually, after installing \fIMH\fR, you'll want to edit the
110: \fB/usr/new/lib/mh/mtstailor\fR file.
111: This file fine-tunes the way \fIMH\fR interacts with the message transport
112: system (MTS).
113: Section 2 talks about the MTS interface and MTS tailoring.
114: .pp
115: After that, if you're running the UCI BBoards facility,
116: or the POP facility,
117: you'll need to know how to maintain those systems.
118: Sections 3 and 4 talk about these.
119: .pp
120: If for some reason
121: you're not running an MTS that can handle both Internet and \fIUUCP\fR traffic,
122: you should read\-up on mail filtering in Section 5.
123: Although this is considered \*(lqold technology\*(rq now,
124: the mechanisms described in Section 5 were really quite useful when
125: first introduced way back in 1981.
126: .pp
127: Finally, you may want to know how to modify the \fIMH\fR source tree.
128: Section 6 talks (a little bit) about that.
129: .pp
130: The last two sections describe a few hidden features in \fIMH\fR,
131: and the configuration options that were in effect when this guide was
132: generated.
133: .pp
134: After \fIMH\fR is installed, you should define the address \*(lqBug\-MH\*(rq
135: to map to either you or the \fIPostMaster\fR at your site.
136: .pp
137: In addition,
138: if you want to tailor the behavior of \fIMH\fR for new users,
139: you can create and edit the file \fB/usr/new/lib/mh/mh.profile\fR.
140: When the \fIinstall-mh\fR program is run for a user,
141: if this file exists, it will copy it into the user's \&.mh\(ruprofile
142: file.
143:
144: .\" macros for the .me/.man files
145: .de SC
146: .he '\\$1(\\$2)'-%-'\\$1(\\$2)'
147: .bp
148: .(x
149: .ti .8i
150: \\$1
151: .)x
152: ..
153: .de NA
154: .b \\s-2NAME\\s0
155: .ti .5i
156: ..
157: .de SY
158: .sp
159: .b \\s-2SYNOPSIS\\s0
160: .in 1i
161: .ti .5i
162: .na
163: ..
164: .de DE
165: .ad
166: .sp
167: .in 0
168: .b \\s-2DESCRIPTION\\s0
169: .sp
170: .fi
171: .in .5i
172: ..
173: .de Hh
174: .ad
175: .sp
176: .in 0
177: .b "\\s-2Helpful Hints\\s0"
178: .sp
179: .fi
180: .in .5i
181: ..
182: .de Fi
183: .(b L
184: .ti 0
185: .b \\s-2Files\\s0
186: .ta \w'/usr/new/lib/mh/ExtraBigFileName 'u
187: ..
188: .de Pr
189: .)b
190: .(b L F
191: .ta \w'ExtraBigProfileName 'u
192: .ti 0
193: .b "\\s-2Profile Components\\s0"
194: .ti .5i
195: ..
196: .de Ps
197: .ti .5i
198: ..
199: .de Sa
200: .)b
201: .(b L F
202: .ti 0
203: .b "\\s-2See Also\\s0"
204: .br
205: ..
206: .de De
207: .)b
208: .(b L
209: .in .5i
210: .ti 0
211: .b \\s-2Defaults\\s0
212: ..
213: .de Ds
214: ..
215: .de Co
216: .)b
217: .(b L F
218: .ti 0
219: .b \\s-2Context\\s0
220: .br
221: ..
222: .de Hi
223: .)b
224: .(b L F
225: .ti 0
226: .b \\s-2History\\s0
227: .br
228: ..
229: .de Bu
230: .)b
231: .(b L F
232: .ti 0
233: .b \\s-2Bugs\\s0
234: .br
235: ..
236: .de En
237: .)b
238: .in 0
239: ..
240:
241: .+c "THE MTS INTERFACE"
242: .pp
243: The file \fB/usr/new/lib/mh/mtstailor\fR customizes
244: certain host\-specific parameters of \fIMH\fR
245: related primarily to interactions with the transport system.
246: The parameters in this file override the compiled\-in defaults given during
247: \fIMH\fR configuration.
248: Rather than recompiling \fIMH\fR on each host to make minor customizations,
249: it is easier simply to modify the \fBmtstailor\fR file.
250: All hosts at a given site normally use the same \fBmtstailor\fR file,
251: though this need not be the case.
252: .pp
253: It is a good idea to run the \fIconflict\fR\0(8) program each morning
254: under \fIcron\fR.
255: The following line usually suffices:
256:
257: .ti +.5i
258: 00 05 * * * /usr/uci/lib/mh/conflict -mail PostMaster
259:
260: .if t \{
261: .ll 6.5i
262: .lt 6.5i
263: \}
264: .fo '[mh.6]'MH'UCI version'
265: .po -.50i
266: .so mh-tailor.me
267: .so mh-mts.me
268: .po +.50i
269: .he ''-%-''
270: .fo ''''
271: .br
272: .if t \{
273: .ll 32P
274: .lt 32P
275: \}
276:
277: .+c "BBOARDS"
278: .pp
279: If you enable the UCI BBoards facility during configuration,
280: then the initial environment for bboards
281: was set\-up during installation.
282: A BBoard called \*(lqsystem\*(rq is established,
283: which is the BBoard for general discussion.
284: .pp
285: To add more BBoards, become the \*(lqbboards\*(rq user,
286: and edit the \fB/usr/spool/bboards/BBoards\fR file.
287: The file \fBsupport/bboards/Example\fR is a copy of the
288: \fB/usr/spool/bboards/BBoards\fR file that we use at UCI.
289: When you add a BBoard,
290: you don't have to create the files associated with it,
291: the BBoards delivery system will do that automatically.
292: .pp
293: Private BBoards may be created.
294: To add the fictitious private BBoard \*(lqhacks\*(rq,
295: add the appropriate entry to the BBoards file,
296: create the empty file \fB/usr/spool/bboards/hacks.mbox\fR (or whatever),
297: change the mode of this file to 0640,
298: and change the group of the file to be the groupid of the people that you
299: want to be able to read it.
300: Also be sure to add the \*(lqbboards\*(rq user to this group
301: (in \fB/etc/group\fR),
302: so the archives can be owned correctly.
303: .pp
304: By using the special INVIS flag for a BBoard,
305: special purpose BBoards may be set\-up which are invisible to the \fIMH\fR
306: user.
307: For example,
308: if a site distributes a BBoard both locally to a number of machines and to a
309: number of distant machines.
310: It might be useful to have two distribution lists:
311: one for all machines on the list, and the other for local machines only.
312: This is actually very simple to do.
313: For the main list,
314: put the standard entry of information in the \fB/usr/spool/bboards/BBoards\fR file,
315: with the complete distribution list.
316: For the local machines list,
317: and add a similar entry to the \fB/usr/spool/bboards/BBoards\fR file.
318: All the fields should be the same except three:
319: the BBoard name should reflect a local designation (e.g., \*(lql\-hacks\*(rq),
320: the distribution list should contain only machines at the local site,
321: and the flags field should contain the INVIS flag.
322: Since the two entries share the same primary and archive files,
323: messages sent to either list are read by local users,
324: while only thoses messages sent to the main list are read by all users.
325: .pp
326: Two automatic facilities for dealing with BBoards exist:
327: automatic archiving and automatic aliasing.
328: The file \fBsupport/bboards/crontab\fR contains some entries that you
329: should add to your \fB/usr/lib/crontab\fR file to run the specified programs
330: at times that are convenient for you.
331: The \fBbboards.daily\fR file is run once a day and generates an alias file
332: for \fIMH\fR.
333: By using this file, users of \fIMH\fR can use, for example,
334: \*(lqunix\-wizards\*(rq instead of \*(lqunix\-wizards@brl\-vgr\*(rq
335: when they want to send a message to the \*(lqunix\-wizards\*(rq
336: discussion group.
337: This is a major win, since you just have to know the name of the group,
338: not the address where it's located.
339: .pp
340: The \fBbboards.weekly\fR file is run once a week and handles old
341: messages (those received more than 12 days ago) in the BBoards area.
342: In short,
343: those BBoards which are marked for automatic archiving
344: will have their old messages placed in the \fB/usr/spool/bboards/archive/\fR area,
345: or have their old messages removed.
346: Not only does this make BBoards faster to read,
347: but it conveniently partitions the new messages from the old messages
348: so you can easily put the old messages on tape and then remove them.
349: It turns out that this automatic archiving capability is also a major
350: win.
351: .pp
352: At UCI,
353: our policy is to save archived messages on tape (every two months or so).
354: We use a program called \fIbbtar\fR to implement our particular policy.
355: Since some BBoards are private (see above),
356: we save the archives on two tapes:
357: one containing the world\-readable archives
358: (this tape is read-only accessible to all users by calling the operator),
359: and the other containing the non\-world\-readable ones
360: (this tape is kept locked\-up somewhere).
361: .pp
362: If POP is enabled with BBoards,
363: a third directive, POPBBoards, may be enabled.
364: This allows the \fIMH\fR user to read BBoards on a server machine
365: instead of the local host (thus saving disk space).
366: For completely transparent behavior,
367: the administrator may set certain variables in the \fBmtstailor\fR file
368: on the client host.
369: The variable \*(lqbbpophost\*(rq indicates the host where BBoards are
370: kept
371: (it doesn't have to be the POP service host,
372: but this host must run both a POP server and the BBoards system).
373: The variable \*(lqbbpopuser\*(rq indicates the guest account on this host
374: for BBoards.
375: This username should not be either the POP user or the BBoards user.
376: Usually the anonymous FTP user (ftp) is the best choice.
377: Finally, the variable \*(lqpopbblist\*(rq indicates the name of a file which
378: contains a list of hosts (one to a line, official host names only) which
379: should be allowed to use the POP facility to access BBoards via the guest
380: account.
381: (If the file is not present, then no check is made.)
382: .pp
383: The \*(lqpopbbuser\*(rq variable should be set on both the client and service
384: host.
385: The \*(lqpopbbhost\*(rq variable need be set only on the client host
386: (the value, of course, is the name of the service host).
387: The \*(lqpopbblist\*(rq variable need be set only on the service host.
388: .if t \{
389: .ll 6.5i
390: .lt 6.5i
391: \}
392: .fo '[mh.6]'MH'UCI version'
393: .po -.50i
394: .so bboards5.me
395: .so bbaka.me
396: .so bbexp.me
397: .so bboards8.me
398: .so bbtar.me
399: .po +.50i
400: .he ''-%-''
401: .fo ''''
402: .br
403: .if t \{
404: .ll 32P
405: .lt 32P
406: \}
407:
408: .+c "POP"
409: .pp
410: For POP (Post Office Protocol) client hosts,
411: you need to edit the \fB/usr/new/lib/mh/mtstailor\fR file to know about two
412: hosts:
413: the SMTP service host and the POP service host.
414: Normally, these are the same.
415: Change the \*(lqlocalname\*(rq field of the \fBmtstailor\fR file
416: of \fIMH\fR in the file to be the name of the POP service host.
417: Also set the value of \*(lqpophost\*(rq to this value.
418: Finally,
419: make sure the value of \*(lqservers\*(rq includes the name of the SMTP
420: service host.
421: The recommended value for \*(lqservers\*(rq is:
422:
423: .ti +.5i
424: servers:\ SMTP\-service\-host localhost \\01localnet
425: .pp
426: If you want more information on the Post Office Protocol used by \fIMH\fR,
427: consult the file \fBsupport/pop/pop.rfc\fR,
428: which is the \fIMH\fR revision to RFC918.
429: .pp
430: For POP service hosts,
431: you need to run a daemon, \fIpopd\fR\0(8).
432: The daemon should start at multi\-user boot time,
433: so adding the lines:
434: .sp
435: .nf
436: .in +.5i
437: if [ \-f /etc/popd ]; then
438: /etc/popd & echo \-n ' pop' >/dev/console
439: fi
440: .in \-.5i
441: .fi
442: to the \fB/etc/rc.local\fR file is sufficient.
443: In addition,
444: on both the POP client and service hosts,
445: you need to define the port that the POP service uses.
446: Add the line
447: .nf
448: .in +.5i
449: pop 109/tcp # experimental
450: .in \-.5i
451: .fi
452: to the \fB/etc/services\fR file (if it's not already there).
453: .pp
454: There are two ways to administer POP:
455: In \*(lqnaive\*(rq mode,
456: each user-id in the \fIpasswd\fR\0(5) file is considered a POP subscriber.
457: No changes are required for the mailsystem on the POP service host.
458: However,
459: this method requires that each POP subscriber have an entry in the password
460: file.
461: The POP server will fetch the user's mail from wherever maildrops are kept on
462: the POP service host.
463: This means that if maildrops are kept in the user's home directory,
464: then each POP subscriber must have a home directory.
465:
466: In \*(lqsmart\*(rq mode
467: (enabled via \*(lqDPOP\*(rq being given as a configuration option),
468: the list of POP subscribers and the list of
469: login users are completely separate name spaces.
470: A separate database (simple file similar to the \fIBBoards\fR\0(5) file)
471: is used to record information about each POP subscriber.
472: Unfortunately,
473: the local mailsystem must be changed to reflect this.
474: This requires two changes (both of which are simple):
475: First,
476: the aliasing mechanism is augmented so that POP subscriber addresses
477: are diverted to a special delivery mechanism.
478: \fIMH\fR comes with a program, \fIpopaka\fR\0(8),
479: which generates the additional information to be put in the mailsystem's
480: alias file.
481: Second,
482: a special POP channel (for MMDF-II) or POP mailer (for SendMail)
483: performs the actual delivery (\fImh.6\fR supplies both).
484: All it really does is just place the mail in the POP spool area.
485: .pp
486: These two different philosophies are not compatible on the same POP service
487: host: one or the other, but not both may be run.
488: Clever mailsystem people will note that
489: the POP mechanism is really a special case of the more general
490: BBoards mechanism.
491: .pp
492: In addition, there is one user-visible difference,
493: which the administrator controls the availability of.
494: The difference is whether the POP subscriber must supply a password to the POP
495: server:
496: The first method uses the standard ARPA technique of sending a username and a
497: password.
498: The appropriate programs (\fIinc\fR, \fImsgchk\fR, and possibly \fIbbc\fR\0)
499: will prompt the user for this information.
500: .pp
501: The second method
502: (which is enabled via \*(lqRPOP\*(rq being given as a configuration option)
503: uses the Berkeley UNIX reserved port method for authentication.
504: This requires that the two or three mentioned above programs be
505: \fIsetuid\fR to root.
506: (There are no known holes in any of these programs.)
507: .pp
508: These two different philosophies are compatible on the same POP service host:
509: to selectively disable RPOP for hosts which aren't trusted,
510: either modify the \fI\&.rhosts\fR file in the case of POP subscribers being
511: UNIX logins,
512: or zero the contents of network address field of the \fIpop\fR\0(5) file for
513: the desired POP subscribers.
514: .if t \{
515: .ll 6.5i
516: .lt 6.5i
517: \}
518: .fo '[mh.6]'MH'UCI version'
519: .po -.50i
520: .so pop5.me
521: .so pop8.me
522: .so popaka.me
523: .so popd.me
524: .so popwrd.me
525: .po +.50i
526: .he ''-%-''
527: .fo ''''
528: .br
529: .if t \{
530: .ll 32P
531: .lt 32P
532: \}
533:
534: .+c "MAIL FILTERING"
535: .pp
536: There was a time when users on a UNIX host might have had two maildrops:
537: one from \fIMMDF\fR and the other from \fIUUCP\fR.
538: This was really a bad problem since it prevented using a single
539: user\-interface on all of your mail.
540: Furthermore,
541: if you wanted to send a message to addresses on different mailsystems,
542: you couldn't send just one message.
543: To solve all these problems,
544: the notion of \fImail filtering\fR was developed that allowed sophisticated
545: munging and relaying between the two pseudo\-domains.
546: .pp
547: \fIMH\fR will perform mail filtering, transparently, if given the MF
548: configuration option.
549: However,
550: with the advent of \fISendMail\fR and further maturation of \fIMMDF\fR,
551: \fIMH\fR doesn't really need to do this anymore,
552: since these message transport agents handle it.
553: .pp
554: The mail\-filtering stuff is too complicated.
555: It should be simpler, but, protocol translation really \fIis\fR difficult.
556: .if t \{
557: .ll 6.5i
558: .lt 6.5i
559: \}
560: .fo '[mh.6]'MH'UCI version'
561: .po -.50i
562: .so mf.me
563: .so rmail.me
564: .po +.50i
565: .he ''-%-''
566: .fo ''''
567: .br
568: .if t \{
569: .ll 32P
570: .lt 32P
571: \}
572:
573: .+c "MH HACKING"
574: .pp
575: Finally, here's a little information on modifying the \fIMH\fR sources.
576: A word of advice however:
577: .sp 2
578: .ce
579: .b \s+4DON'T\s0
580: .sp 2
581: .lp
582: If you really want new \fIMH\fR capabilities,
583: write a shell script instead.
584: After all,
585: that's what UNIX is all about, isn't it?
586: .pp
587: Here's the organization of the \fIMH\fR source tree.
588: .sp
589: .nf
590: .in +.5i
591: .ta \w'miscellany/ 'u +\w'sendmail/ 'u
592: conf/ configurator tree
593: config/ compiled configuration constants
594: dist/ distributor
595: doc/ manual entries
596: h/ include files
597: mts/ MTS\-specific areas
598: mh/ standalone delivery
599: mmdf/ MMDF\-I, MMDF\-II
600: sendmail/ SendMail, SMTP
601: miscellany/ various sundries
602: papers/ papers about \fIMH\fR
603: sbr/ subroutines
604: support/ support programs and files
605: bboards/ UCI BBoards facility
606: general/ templates
607: pop/ POP facility
608: uip/ programs
609: zotnet/ MTS\-independent areas
610: bboards/ UCI BBoards facility
611: mf/ Mail Filtering
612: mts/ MTS constants
613: tws/ date routines
614: .re
615: .in -.5i
616: .fi
617: .if t \{
618: .ll 6.5i
619: .lt 6.5i
620: \}
621: .fo '[mh.6]'MH'UCI version'
622: .po -.50i
623: .so mh-hack.me
624: .po +.50i
625: .he ''-%-''
626: .fo ''''
627: .br
628: .if t \{
629: .ll 32P
630: .lt 32P
631: \}
632:
633: .+c "HIDDEN FEATURES"
634: .pp
635: The capabilities discussed here should not be used on a production basis,
636: as they are either experimental or are useful for debugging \fIMH\fR.
637:
638: .uh "Debug Facilities"
639: .pp
640: The \fImark\fR command has a `\-debug' switch which essentially prints out
641: all the internal \fIMH\fR data structures for the folder you're looking at.
642: .pp
643: The \fIpost\fR command has a `\-debug' switch which does everything but
644: actually post the message for you.
645: Instead of posting the draft, it sends it to the standard output.
646: Similarly,
647: \fIsend\fR has a `\-debug' switch which gets passed to \fIpost\fR.
648: .pp
649: Some \fIMH\fR commands look at environment variables to determine debug\-mode operation
650: of certain new facilities.
651: The current list of environment variables is:
652: .sp
653: .nf
654: .in +.5i
655: .ta \w'MHLPOPDEBUG 'u
656: ^MHFDEBUG~^OVERHEAD facility
657: ^MHLDEBUG~^mhl
658: ^MHPDEBUG~^pick
659: ^MHPOPDEBUG~^POP transactions
660: ^MHVDEBUG~^window management transactions
661: ^MHWDEBUG~^alternate\-mailboxes
662: .re
663: .in -.5i
664: .fi
665:
666: .uh "Send"
667: .pp
668: The \fIsend\fR command has two switches, `\-unique' and `\-nounique',
669: which are useful to certain individuals who, for obscure reasons,
670: do not use draft\-folders.
671:
672: .uh "Posting Mail"
673: .pp
674: If you're running a version of \fIMH\fR which talks directly to an
675: \fISMTP\fR server (or perhaps an advanced \fIMMDF\fR submit process),
676: there are lots of interesting switches for your amusement which \fIsend\fR
677: and \fIpost\fR understand:
678: .nf
679: .in +.5i
680: .ta \w'-server host 'u
681: ^-mail~^Use the \fIMAIL\fR command (default)
682: ^-saml~^Use the \fISAML\fR command
683: ^-send~^Use the \fISEND\fR command
684: ^-soml~^Use the \fISOML\fR command
685: ^-snoop~^Watch the \fISMTP\fR transaction
686: ^-client host~^Claim to be \*(lqhost\*(rq when posting mail
687: ^-server host~^Post mail with \*(lqhost\*(rq
688: .re
689: .in -.5i
690: .fi
691: .pp
692: The last switch is to be useful when \fIMH\fR resides on small
693: workstations (or PC:s) in a network\-\-they can post their outgoing mail with
694: a local relay,
695: and reduce the load on the local system.
696: On POP client hosts,
697: the `\-server\ host' switch is defaulted appropriately using the SMTP
698: search\-list mechanism.
699: The \fIwhom\fR command understands the last three switches.
700:
701: .+c "CONFIGURATION OPTIONS"
702: .pp
703: This manual was generated with the following configuration options in
704: effect:
705: .sp 2
706: .hl
707: .nf
708: .in +1.25i
709: .ta \w'BBoards Home Directory 'u
710: ^Generation Date~^\*(td
711: ^Primary Directory~^/usr/new/mh/
712: ^Secondary Directory~^/usr/new/lib/mh/
713: ^Maildrop Location~^/usr/spool/mail/$USER
714: ^Transport System~^SendMail \*(SM
715: .re
716: .in -1.5i
717: .fi
718: .hl
719: .\" table of contents
720: .he ''''
721: .fo ''''
722: .bp
723: .ce
724: .b \\s12CONTENTS\\s0
725: .sp 3
726: .xp y
727: .xp x
728: .bp
729: .\" And now the COVER sheet
730: .po +.325i
731: .ll 32P
732: .nf
733:
734: .sp 1.5in
735: .ps 24
736: .vs 32
737: .ft B
738: .ce 4
739: THE RAND MH
740: MESSAGE HANDLING
741: SYSTEM:
742: ADMINISTRATOR'S GUIDE
743: .ft R
744: .sp .8i
745: .ps 20
746: .vs 24
747: .ce
748: UCI Version
749: .sp 0.7i
750: .ce 2
751: Marshall T. Rose
752: .sp 0.5i
753: .ft I
754: .ce 3
755: First Edition:
756: MH Classic
757: \s-2(Not to be confused with a well\-known soft drink)\s+2
758: .ft R
759: .vs
760: .sp 1i
761: .ps 18
762: .vs 22
763: .ce 2
764: \*(td
765: \*(MH
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.