8 The Rand MH Message Handling System:
11 MH #6.5 for 4.3BSD UNIX
17 Northrop Research and Technology Center
21 Palos Verdes Peninsula, CA 90274
31 This document describes the user-visible change to the UCI ver-
32 sion of the Rand MH system that were made from mh.5 to MH #6.5.
33 It is based on the mh.6 changes document, but has been updated to
34 accurately reflect the MH distributed with 4.3bsd UNIX1 . This docu-
35 ment does not describe bug-fixes, per se, or internal changes, unless
36 these activities resulted in a visible change for the MH user.
37 This document is meant to supplement, not supersede, the stan-
38 dard MH User's manual[MRose85 ].
39 Comments concerning this documentation should be addressed to
40 the Internet mailbox Bug-MH@ICS.UCI.EDU.
44 ________________________________________________
45 T0his document (version #2.10) was LaTEX set April 12, 1990 with lplain v2.09-10/29/85.
46 1 UNIX is a trademark of AT&T Bell Laboratories.
58 The MH system described herein is based on the original Rand MH system.
60 It has been extensively developed (perhaps too much so) by Marshall T. Rose
62 and John L. Romine at the University of California, Irvine. Einar A. Stef-
64 ferud, Jerry N. Sweet, and Terry P. Domae provided numerous suggestions
66 to improve the UCI version of MH . Of course, a large number of people have
68 helped MH along. The list of "MH immortals" is too long to list here. How-
70 ever, Van Jacobson deserves a special acknowledgement for his tireless work
72 in improving the performance of MH . Some programs have been speeded-up
74 by a factor of 10 or 20. All of users of MH , everywhere, owe a special thanks
83 The Regents of the University of California wish to make it known that:
86 Although each program has been tested by its contributor, no
88 warranty, express or implied, is made by the contributor or the
90 University of California, as to the accuracy and functioning of
92 the program and related program material, nor shall the fact of
94 distribution constitute any such warranty, and no responsibility
96 is assumed by the contributor or the University of California in
110 In this document, certainaL TE X -formatting conventions are adhered to:
113 1. The names of UNIX commands, such as comp , are presented in text
118 2. Arguments to programs, such as `msgs', are presented in typewriter
120 style and delimited by single-quotes.
123 3. UNIX pathnames and envariables, such as
126 /usr/uci/ and $SIGNATURE ;
129 are presented in slanted roman.
132 4. Text presenting an example, such as
140 is presented in typewriter style.
152 Unlike the changes between mh.4 and mh.5 , a large number of user-visible
154 changes have been made in mh.6 . These changes have been in the form of
156 bug fixes and several generalizations. The majority of these will not affect
158 novice users. In addition, mh.6 is a great deal faster than mh.5 : all programs
160 have been speeded-up significantly, thanks to work done by Van Jacobson as
162 part of the process of including mh.6 in the 4.3bsd UNIX distribution.
164 This document describes all user-visible changes to mh.5 from it's initial
166 release to the intermediate release of MH #6.5.
173 In addition to support for bsd UNIX, V7 UNIX and Xenix2 variants of UNIX,
175 MH finally has support for the AT&T variant of UNIX, System 5. Hopefully
177 this will greatly expand the number of system which can run MH . Ironically,
179 it appears that five ports of earlier versions of MH (including mh.5 ) were
181 done, but news of the work was not widespread.3
188 Several new documents have been included in the mh.6 distribution: The
190 paper MH.5: How to process 200 messages a day and still get some real work
192 done was presented at the 1985 Summer Usenix Conference and Exhibition
194 in Portland, Orgeon. Another paper, MH: A Multifarious User Agent, has
196 been accepted for publication by Computer Networks. Both describe MH , the
198 former from a more technical and somewhat humorous perspective, the latter
200 from a more serious and research-oriented perspective. In addition, a third
202 paper has been included, Design of the TTI Prototype Trusted Mail Agent,
204 which describes a so-called "trusted" mail agent built on top of MH . This
206 paper was presented at the Second International Symposium on Computer
208 Message Systems in Washington, D.C. A fourth paper, MZnet: Mail Service
210 for Personal Micro-Computer Systems, is also included. This paper, which
211 ________________________________________________
212 2 Xenix is a trademark of Microsoft Corporation.
213 3 In fact, three groups in one large organization ported MH independently, each without
215 knowledge of the others' work.
224 was presented at the First International Symposium on Computer Message
226 Systems in Nottingham, U.K., describes a CP/M4 -based version of MH .
228 In addition, the MH tutorial, The Rand MH Message Handling System:
230 Tutorial, and, The Rand MH Message Handling System: The UCI BBoards
232 Facility, have both been updated by Jerry N. Sweet.
234 For MH administrators (PostMasters and the like), there's an entirely
236 new document, The Rand MH Message Handling System: Administrator's
238 Guide. It explains most of the "ins and outs" of maintaining an MH system.
240 Finally, all of the manual entries and the MH manual have had a thorough
242 working over. The documentation is expanded, more accurate, and more
251 When any MH command is invoked with the `-help' switch, in addition to
253 listing the syntax of the command and version information, the MH config-
255 uration options will be listed. MH has so many configuration options, that
257 when debugging problems, this information is invaluable.
264 There are two new profile entries worth noting: MH-Sequences tells MH the
266 name of the file to record public sequences in. Users of vm , a proprietary,
268 visual front-end to MH , make use of this to disable the public sequences
272 The profile entry Unseen-Sequence names those sequences which should
274 be defined as those messages recently incorporated by inc . The show program
276 knows to remove messages from this sequence once it thinks they have been
278 seen. If this profile entry is not present, or is empty, then no sequences are
280 defined. Otherwise, for each name given, the sequence is first zero'd and then
282 each message incorporated is added to the sequence. As such, this profile
284 entry is rather analogous to the Previous-Sequence entry in the user's MH
288 In addition, the Alternate-Mailboxes entry in the profile has been ex-
290 panded to support simple wild-carding. Also, the default for this profile entry
291 ________________________________________________
292 4 CP/M is a trademark of Digital Research Corporation.
301 is now the user's mail-id at any host. This change was made since MH can
303 no longer reliably figure out what the user's real outgoing address looks like.
305 Finally, when the install-mh program is automatically invoked by MH , it
307 won't prompt the user for information. Instead, it notes that it's setting up
309 the default environment. In addition, the MH administrator may set-up a
311 file called mh.profile in the MH library area which is consulted by install-mh
313 when initializing the user's .mh__profile .
320 The folder , scan , and show programs have been modified to update the user's
322 MH context prior to writing to the user's terminal. This allows the MH user
324 interrupt output to the terminal and still have the expected context. This is
326 especially useful to interrupt long scan listings. This change also introduces
328 a subtle bug between show and messages denoted by the Unseen-Sequence.
330 See show (1) for the details.
334 Addresses and 822 support
337 MH now fully supports the RFC-822 routing syntax for addresses (it used to
339 recognize the syntax, but ignore the information present). In addition, there
341 are three major modes for support of non-822 addressing in MH :
346 This is useful on sites running SendMail . It doesn't support full 822-
348 style addressing, in favor of recognizing such formats as ACSnet, and
350 so on. For sites that can't run in an 822-compliant environment, this is
352 the option to use (at the price of sacrificing some of the power of 822-
354 style addressing). This also drastically reduces the address formatting
356 facilities described below.
361 Although not as liberal as BERK, the DUMB option is useful on sites
363 in which the message transport system conforms to the 822 standard,
365 but wants to do all the defaulting itself.
370 From out in left field, the BANG option favors UUCP -style addressing
379 over 822-style addressing. Hopefully when all the UUCP sites around
381 get around to adopting domain-style addresses, this option won't be
386 The ap program (mentioned momentarily) and the ali program both sup-
388 port a `-normalize' switch indicate if addresses should be resolved to their
390 "official" hostnames.
397 There are five new programs available: The ap program is the MH stand-
399 alone address parser. It's useful for printing address in various formats (and
401 for debugging address strings). The dp program is similar, but works on
403 dates instead of addresses.
405 The msgchk program checks for new mail, possibly using the Post Office
407 Protocol, POP, described below.
409 A new receive mail hook, the rcvstore program, which was written by
411 Julian L. Onions is available.
413 Finally, a visual front-end to msh called vmh has been included. (This
415 program is discussed in greater detail later on.)
422 MH now no longer restricts the number of messages which may reside in a
424 folder (beyond that of system memory constraints). This means that message
426 numbers larger than 2000 are permissible. Hopefully this will make life easier
428 for people reading the network news using MH .
435 In mh.6 , there is now the concept of a unified What now? processor that
437 the four composition programs, comp , dist , forw , and repl all invoke. This
439 permits a greater flexibility in building mail applications with MH . As a
441 result, there's a new program, whatnow , which acts as the default What now?
443 program. Consult the whatnow (1) manual entry for all the details. The only
445 important user-visible change is the headers option went away, which wasn't
447 used that much anyway.
456 The only other thing worth noting is that unless MH has been compiled
458 with the UCI option, the user's $HOME/.signature file is not consulted for
460 the user's personal name.
467 A general format string facility has been added to allow MH users to tailor
469 the output of certain commands.
471 The inc , scan , ap , and dp programs all consult a file containing format
473 strings. Format strings, which look a lot like printf (3) strings, give these MH
475 commands precise instructions on how to format their output.
477 As a result, the inc and scan programs no longer have the `-size', `-
479 nosize', `-time', `-notime', `-numdate', and `-nonumdate' switches. These
481 switches have been replaced with the `-form formatfile' switch and the
483 `-format string' switch. The former directs the program to consult the
485 named file for the format strings. The latter directs the program to use the
487 named string as the format. To get the behavior of the old `-time' option,
489 use the `-form scan.time' option. Similarly, to get the effect of `-size', use
493 A fun form to use is `-form scan.timely' with scan . Try it sometime.
495 The repl command uses a file containing format files to indicate how the
497 reply draft should be constructed. Note that reply templates prior to mh.6
499 are incompatible with mh.5 .5 Don't worry though, it's quite easy to convert
501 the templates by hand. (Those clever enough to have written a reply template
503 to begin with won't have any problem.)
505 Similarly, when the forw program is constructing a digest, it uses a file
507 containing format strings to indicate how to build the encapsulating draft.
509 Finally, you can use these facilities in mhl as well.
516 The depreciated MH news system (from mh.1 ) is now de-supported. Use the
518 "hoopy" BBoards facility instead.
519 ________________________________________________
520 5 In fact, reply templates between mh.6 and MH #6.5 are imcompatible.
532 MH maintainers take note: the default home directory for the bboards login
534 has changed from /usr/bboards/ to /usr/spool/bboards/ . Use the bbhome
536 directive in your MH configuration file to set it back to the old value if you
540 In addition, the aliases field for a BBoard in the BBoards file is now
542 deemed useful only for addressing, not for user input to bbc . This means
544 when giving the name of a BBoard to bbc , only the official name should be
548 A final note for mailsystem maintainers: the MMDF-II BBoards chan-
550 nel and the SendMail BBoards mailer have been modified to use the stan-
552 dard message encapsulation format when returning failed messages to the list
554 maintainer. This means that the failure notices that the maintainer receives
556 can simply be burst .
563 The bbc program permits you to specify the mshproc to use on the command
565 line by using the `-mshproc program' option. There's also a `-rcfile file'
567 option which does "the obvious thing". In addition, options which aren't
569 understood by bbc are passed along to the mshproc.
571 In addition, the following commands pass any unrecognized switches on
573 to the program that they invoke: bbc , next , show , prev , and vmh .
580 If both BBoards and POP (see the next section) are enabled, then distributed
582 BBoards can be supported on top of the POP service. This allows the MH
584 user to read BBoards on a server machine instead of the local host (which
586 saves a lot of wasted disk space when the same BBoards are replicated sev-
588 eral times at a site with several hosts). See the Administrator's Guide for
590 information on how this can be made completely transparent to the MH user.
592 If you have several machines at your site running 4.2bsd UNIX and con-
594 nected by an Ethernet6 (or other high-speed LAN), you want this software.
595 ________________________________________________
596 6 Ethernet is a trademark of the Xerox Corporation.
605 Visual Front-End to msh
608 A simple window management protocol has been implemented for MH pro-
610 grams that might wish to act as a back-end to a sophisticated visual front-
614 The first implementation of a server side (front-end) program is vmh ,
616 which uses curses (3) to maintain a split-screen interface. Perhaps look for a
618 mhtool program for the SUN next!
620 The msh program has been modified to speak the client side (back-end)
622 of this protocol, if so directed. At present, msh is the only program in the
624 MH distribution which implements the client side of the window management
633 Prior to quitting, the msh command now asks if the packf 'd file you've been
635 perusing should be updated if you've modified it and the file is writable by
637 you. The file can be modified by using burst , rmm , rmm , or sortm commands.
639 The file can also be modified by using the refile command without the `-link'
641 option. (Or course, the `-link' option doesn't actually link anything to the
650 MH now contains a powerful facility for doing distributed mail (having MH
652 reside on a host different than the message transport agent). For general
654 information, consult either the MH.5: How to process 200 messages a day
656 and still get some real work done paper, or the MH: A Multifarious User
658 Agent paper. For specific information, consult the Administrator's Guide.
660 Here's a brief synopsis:
662 This POP facility in MH is based on a modification of the ARPA Post
664 Office Protocol (POP). A POP subscriber is a remote user, on a POP client
666 host, that wishes to pick-up mail on a POP service host.
668 There are two ways to administer POP:
673 Each user-id in the passwd (5) file is considered a POP subscriber. No
682 changes are required for the mailsystem on the POP service host. How-
684 ever, this method requires that each POP subscriber have an entry in
686 the password file. The POP server will fetch the user's mail from wher-
688 ever maildrops are kept on the POP service host. This means that if
690 maildrops are kept in the user's home directory, then each POP sub-
692 scriber must have a home directory.
697 This is based on the notion that the list of POP subscribers and the
699 list of login users are completely separate name spaces. A separate
701 database (similar to the BBoards (5) file) is used to record information
703 about each POP subscriber. Unfortunately, the local mailsystem must
705 be changed to reflect this. This requires two changes (both of which
712 The aliasing mechanism is augmented so that POP subscriber ad-
714 dresses are diverted to a special delivery mechanism. MH comes
716 with a program, popaka (8), which generates the additional infor-
718 mation to be put in the mailsystem's alias file.
722 A special POP delivery channel (for MMDF-II ) or POP mailer (for
724 SendMail ) performs the actual delivery (mh.6 supplies both). All
726 it really does is just place the mail in the POP spool area.
729 Clever mailsystem people will note that the POP mechanism is really
731 a special case of the more general BBoards mechanism.
734 These two different philosophies are not compatible on the same POP service
736 host: one or the other, but not both, may be run.
738 In addition, there is one user-visible difference, which the administrator
740 controls the availability of. The difference is whether the POP subscriber
742 must supply a password to the POP server:
745 - ARPA standard method
747 This uses the standard ARPA technique of sending a username and a
749 password. The appropriate programs (inc , msgchk , and possibly bbc )
751 will prompt the user for this information.
762 This uses the Berkeley UNIX reserved port method for authentication.
764 This requires that the two or three mentioned above programs be setuid
766 to root. (There are no known holes in any of these programs.)
769 These two different philosophies are compatible on the same POP service
771 host: to selectively disable RPOP for hosts which aren't trusted, either mod-
773 ify the .rhosts file in the case of POP subscribers being UNIX logins, or zero
775 the contents of network address field of the pop (5) file for the desired POP
779 The inc command also has two other switches when MH is enabled for
781 POP: `-pack file' and `-nopack'. Normally, inc will use the POP to incor-
783 porate mail from a POP service host into an MH folder (+inbox). However,
785 there are some misguided individuals who prefer to msh to read their mail-
787 drop. By using the `-pack file' option, these individuals can direct inc to
789 fetch their maildrop from the POP service host and store it locally in the
791 named file. As expected, inc will treat the local file as a maildrop, performing
793 the appropriate locking protocols. And, if the file doesn't exist, the user is
795 now asked for confirmation.
802 In order to offer users of MH increased rcvmail hook functionality, the slocal
804 program has been upgraded to support the semantics of the MMDF-II mail-
806 delivery mechanism. This means that users of mh.6 can maintain identi-
808 cal .maildelivery files regardless of the underlying transport system. See
810 mhook (1) for all the details.
817 The rcvdist rcvmail hook now uses the MH formatting facility when redis-
823 Field change in rcvpack
826 The rcvpack rcvmail hook now adds the field name Delivery-Date: instead
828 of Cron-Date: to messages it pack s.
840 James Larus' mh-e macro package for GNU Emacs (version 17) is included
842 in the distribution. When loaded in Emacs, this provides a handy front-end.
849 Here's the miscellany:
856 Alias files used by MH , display templates used by mhl , and format files used
858 by forw , repl , and scan all support a standard continuation line syntax. To
860 continue a line in one of these files, simply end the line with the backslash
862 character (`n'). All the other files used by MH are in 822-format, so the
864 822-continuation mechanism is used.7
871 MH now uses numeric timezones instead of locally-meaningful alpha time-
873 zones when generating mail. This change was made to encourage the use
875 of unambiguous, globally-meaningful timezone strings. A local configura-
877 tion option can disable this correct behavior. All of the mhl templates have
879 been modified to use locally-meaningful alpha timezones when displaying
888 The ali command now has a `-noalias' switch to prevent system-wide aliases
890 from being interpreted.
894 Modifications to show
897 The `-format', `-noformat', `-pr', and `-nopr' options to show have gone away
899 in favor of a more general mechanism. The `-showproc program' option tells
900 ________________________________________________
901 7 Looking back, it would have been best had all files in MH used the 822-format.
910 show (or next or prev ) to use the named program as the showproc. The
912 `-noshowproc' option tells show , et. al., to use the cat (1) program instead of
914 a showproc. As a result, the profile entry prproc is no longer used.
921 The `-ms ms-file' switch in inc has been changed to `-file name' to be
930 When outputting to a terminal, the mhl program now runs the program
932 denoted by the profile entry moreproc. If this entry is not present, the
934 default is the UCB more program. If the entry is non-empty, then that
936 program is spliced between mhl and the user's terminal. The author uses the
938 less program as his moreproc.
940 Of course, if mhl isn't outputting to a terminal, then moreproc is not
944 Finally, to aid in the construction of replies, a prefix string may be speci-
946 fied for the body component of the message being replied-to. Simply use the
948 component= construct in mhl for body:.
952 Confirmation in packf
955 If the file specified by the `-file name' switch doesn't exist, the user is now
957 asked for confirmation.
961 Complex Expressions in pick
964 The pick command now handles complex boolean expressions.
968 Defaults change in prompter and burst
971 The `-prepend' option is now the default in prompter . The `-noinplace'
973 option is now the default in burst .
985 If multiple Fcc:s for a message are specified during posting, post will try much
987 harder to preserve links.
991 Interactive option in rmf
994 The rmf program has been changed to support an `-interactive' switch.
996 If given, then the user is prompted regarding whether the folder should be
998 deleted. If the folder to be removed is not given by the user, this switch is
1004 Trusted Mail Interface
1007 MH now has an interface for so-called "trusted mail" applications. Although
1009 the modifications to MH to support this are in the public domain, the actual
1011 library that MH uses is not. Contact Professor David J. Farber (Farber@UDel)
1013 for more information.
1020 [MRose85] Marshall T. Rose and John L. Romine. The Rand MH Message
1022 Handling System: User's Manual. Department of Information
1024 and Computer Science, University of California, Irvine, mh.6 edi-
1026 tion, November, 1985. UCI Version.