]> diplodocus.org Git - nmh/blob - docs/historical/mh6.txt
Fix a segfault that happens when using the -file option.
[nmh] / docs / historical / mh6.txt
1
2
3
4
5 Changes to
6
7
8 The Rand MH Message Handling System:
9
10
11 MH #6.5 for 4.3BSD UNIX
12
13
14
15 Marshall T. Rose
16
17 Northrop Research and Technology Center
18
19 One Research Park
20
21 Palos Verdes Peninsula, CA 90274
22
23
24
25 April 12, 1990
26
27
28
29 Abstract
30
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.
41
42
43
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.
47
48
49
50 1
51 \f
52
53
54
55 Acknowledgements
56
57
58 The MH system described herein is based on the original Rand MH system.
59
60 It has been extensively developed (perhaps too much so) by Marshall T. Rose
61
62 and John L. Romine at the University of California, Irvine. Einar A. Stef-
63
64 ferud, Jerry N. Sweet, and Terry P. Domae provided numerous suggestions
65
66 to improve the UCI version of MH . Of course, a large number of people have
67
68 helped MH along. The list of "MH immortals" is too long to list here. How-
69
70 ever, Van Jacobson deserves a special acknowledgement for his tireless work
71
72 in improving the performance of MH . Some programs have been speeded-up
73
74 by a factor of 10 or 20. All of users of MH , everywhere, owe a special thanks
75
76 to Van.
77
78
79
80 Disclaimer
81
82
83 The Regents of the University of California wish to make it known that:
84
85
86 Although each program has been tested by its contributor, no
87
88 warranty, express or implied, is made by the contributor or the
89
90 University of California, as to the accuracy and functioning of
91
92 the program and related program material, nor shall the fact of
93
94 distribution constitute any such warranty, and no responsibility
95
96 is assumed by the contributor or the University of California in
97
98 connection herewith.
99
100
101
102 2
103 \f
104
105
106
107 Conventions
108
109
110 In this document, certainaL TE X -formatting conventions are adhered to:
111
112
113 1. The names of UNIX commands, such as comp , are presented in text
114
115 italics.
116
117
118 2. Arguments to programs, such as `msgs', are presented in typewriter
119
120 style and delimited by single-quotes.
121
122
123 3. UNIX pathnames and envariables, such as
124
125
126 /usr/uci/ and $SIGNATURE ;
127
128
129 are presented in slanted roman.
130
131
132 4. Text presenting an example, such as
133
134
135
136 comp -editor zz
137
138
139
140 is presented in typewriter style.
141
142
143
144 3
145 \f
146
147
148
149 General Changes
150
151
152 Unlike the changes between mh.4 and mh.5 , a large number of user-visible
153
154 changes have been made in mh.6 . These changes have been in the form of
155
156 bug fixes and several generalizations. The majority of these will not affect
157
158 novice users. In addition, mh.6 is a great deal faster than mh.5 : all programs
159
160 have been speeded-up significantly, thanks to work done by Van Jacobson as
161
162 part of the process of including mh.6 in the 4.3bsd UNIX distribution.
163
164 This document describes all user-visible changes to mh.5 from it's initial
165
166 release to the intermediate release of MH #6.5.
167
168
169
170 System-5 Support
171
172
173 In addition to support for bsd UNIX, V7 UNIX and Xenix2 variants of UNIX,
174
175 MH finally has support for the AT&T variant of UNIX, System 5. Hopefully
176
177 this will greatly expand the number of system which can run MH . Ironically,
178
179 it appears that five ports of earlier versions of MH (including mh.5 ) were
180
181 done, but news of the work was not widespread.3
182
183
184
185 Documentation
186
187
188 Several new documents have been included in the mh.6 distribution: The
189
190 paper MH.5: How to process 200 messages a day and still get some real work
191
192 done was presented at the 1985 Summer Usenix Conference and Exhibition
193
194 in Portland, Orgeon. Another paper, MH: A Multifarious User Agent, has
195
196 been accepted for publication by Computer Networks. Both describe MH , the
197
198 former from a more technical and somewhat humorous perspective, the latter
199
200 from a more serious and research-oriented perspective. In addition, a third
201
202 paper has been included, Design of the TTI Prototype Trusted Mail Agent,
203
204 which describes a so-called "trusted" mail agent built on top of MH . This
205
206 paper was presented at the Second International Symposium on Computer
207
208 Message Systems in Washington, D.C. A fourth paper, MZnet: Mail Service
209
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
214
215 knowledge of the others' work.
216
217
218
219 4
220 \f
221
222
223
224 was presented at the First International Symposium on Computer Message
225
226 Systems in Nottingham, U.K., describes a CP/M4 -based version of MH .
227
228 In addition, the MH tutorial, The Rand MH Message Handling System:
229
230 Tutorial, and, The Rand MH Message Handling System: The UCI BBoards
231
232 Facility, have both been updated by Jerry N. Sweet.
233
234 For MH administrators (PostMasters and the like), there's an entirely
235
236 new document, The Rand MH Message Handling System: Administrator's
237
238 Guide. It explains most of the "ins and outs" of maintaining an MH system.
239
240 Finally, all of the manual entries and the MH manual have had a thorough
241
242 working over. The documentation is expanded, more accurate, and more
243
244 detailed.
245
246
247
248 Help Listings
249
250
251 When any MH command is invoked with the `-help' switch, in addition to
252
253 listing the syntax of the command and version information, the MH config-
254
255 uration options will be listed. MH has so many configuration options, that
256
257 when debugging problems, this information is invaluable.
258
259
260
261 The MH Profile
262
263
264 There are two new profile entries worth noting: MH-Sequences tells MH the
265
266 name of the file to record public sequences in. Users of vm , a proprietary,
267
268 visual front-end to MH , make use of this to disable the public sequences
269
270 feature of MH .
271
272 The profile entry Unseen-Sequence names those sequences which should
273
274 be defined as those messages recently incorporated by inc . The show program
275
276 knows to remove messages from this sequence once it thinks they have been
277
278 seen. If this profile entry is not present, or is empty, then no sequences are
279
280 defined. Otherwise, for each name given, the sequence is first zero'd and then
281
282 each message incorporated is added to the sequence. As such, this profile
283
284 entry is rather analogous to the Previous-Sequence entry in the user's MH
285
286 profile.
287
288 In addition, the Alternate-Mailboxes entry in the profile has been ex-
289
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.
293
294
295
296 5
297 \f
298
299
300
301 is now the user's mail-id at any host. This change was made since MH can
302
303 no longer reliably figure out what the user's real outgoing address looks like.
304
305 Finally, when the install-mh program is automatically invoked by MH , it
306
307 won't prompt the user for information. Instead, it notes that it's setting up
308
309 the default environment. In addition, the MH administrator may set-up a
310
311 file called mh.profile in the MH library area which is consulted by install-mh
312
313 when initializing the user's .mh__profile .
314
315
316
317 The MH Context
318
319
320 The folder , scan , and show programs have been modified to update the user's
321
322 MH context prior to writing to the user's terminal. This allows the MH user
323
324 interrupt output to the terminal and still have the expected context. This is
325
326 especially useful to interrupt long scan listings. This change also introduces
327
328 a subtle bug between show and messages denoted by the Unseen-Sequence.
329
330 See show (1) for the details.
331
332
333
334 Addresses and 822 support
335
336
337 MH now fully supports the RFC-822 routing syntax for addresses (it used to
338
339 recognize the syntax, but ignore the information present). In addition, there
340
341 are three major modes for support of non-822 addressing in MH :
342
343
344 - BERK
345
346 This is useful on sites running SendMail . It doesn't support full 822-
347
348 style addressing, in favor of recognizing such formats as ACSnet, and
349
350 so on. For sites that can't run in an 822-compliant environment, this is
351
352 the option to use (at the price of sacrificing some of the power of 822-
353
354 style addressing). This also drastically reduces the address formatting
355
356 facilities described below.
357
358
359 - DUMB
360
361 Although not as liberal as BERK, the DUMB option is useful on sites
362
363 in which the message transport system conforms to the 822 standard,
364
365 but wants to do all the defaulting itself.
366
367
368 - BANG
369
370 From out in left field, the BANG option favors UUCP -style addressing
371
372
373
374 6
375 \f
376
377
378
379 over 822-style addressing. Hopefully when all the UUCP sites around
380
381 get around to adopting domain-style addresses, this option won't be
382
383 needed.
384
385
386 The ap program (mentioned momentarily) and the ali program both sup-
387
388 port a `-normalize' switch indicate if addresses should be resolved to their
389
390 "official" hostnames.
391
392
393
394 New Programs
395
396
397 There are five new programs available: The ap program is the MH stand-
398
399 alone address parser. It's useful for printing address in various formats (and
400
401 for debugging address strings). The dp program is similar, but works on
402
403 dates instead of addresses.
404
405 The msgchk program checks for new mail, possibly using the Post Office
406
407 Protocol, POP, described below.
408
409 A new receive mail hook, the rcvstore program, which was written by
410
411 Julian L. Onions is available.
412
413 Finally, a visual front-end to msh called vmh has been included. (This
414
415 program is discussed in greater detail later on.)
416
417
418
419 Message Numbering
420
421
422 MH now no longer restricts the number of messages which may reside in a
423
424 folder (beyond that of system memory constraints). This means that message
425
426 numbers larger than 2000 are permissible. Hopefully this will make life easier
427
428 for people reading the network news using MH .
429
430
431
432 The WhatNow Shell
433
434
435 In mh.6 , there is now the concept of a unified What now? processor that
436
437 the four composition programs, comp , dist , forw , and repl all invoke. This
438
439 permits a greater flexibility in building mail applications with MH . As a
440
441 result, there's a new program, whatnow , which acts as the default What now?
442
443 program. Consult the whatnow (1) manual entry for all the details. The only
444
445 important user-visible change is the headers option went away, which wasn't
446
447 used that much anyway.
448
449
450
451 7
452 \f
453
454
455
456 The only other thing worth noting is that unless MH has been compiled
457
458 with the UCI option, the user's $HOME/.signature file is not consulted for
459
460 the user's personal name.
461
462
463
464 Format Strings
465
466
467 A general format string facility has been added to allow MH users to tailor
468
469 the output of certain commands.
470
471 The inc , scan , ap , and dp programs all consult a file containing format
472
473 strings. Format strings, which look a lot like printf (3) strings, give these MH
474
475 commands precise instructions on how to format their output.
476
477 As a result, the inc and scan programs no longer have the `-size', `-
478
479 nosize', `-time', `-notime', `-numdate', and `-nonumdate' switches. These
480
481 switches have been replaced with the `-form formatfile' switch and the
482
483 `-format string' switch. The former directs the program to consult the
484
485 named file for the format strings. The latter directs the program to use the
486
487 named string as the format. To get the behavior of the old `-time' option,
488
489 use the `-form scan.time' option. Similarly, to get the effect of `-size', use
490
491 `-form scan.size'.
492
493 A fun form to use is `-form scan.timely' with scan . Try it sometime.
494
495 The repl command uses a file containing format files to indicate how the
496
497 reply draft should be constructed. Note that reply templates prior to mh.6
498
499 are incompatible with mh.5 .5 Don't worry though, it's quite easy to convert
500
501 the templates by hand. (Those clever enough to have written a reply template
502
503 to begin with won't have any problem.)
504
505 Similarly, when the forw program is constructing a digest, it uses a file
506
507 containing format strings to indicate how to build the encapsulating draft.
508
509 Finally, you can use these facilities in mhl as well.
510
511
512
513 News
514
515
516 The depreciated MH news system (from mh.1 ) is now de-supported. Use the
517
518 "hoopy" BBoards facility instead.
519 ________________________________________________
520 5 In fact, reply templates between mh.6 and MH #6.5 are imcompatible.
521
522
523
524 8
525 \f
526
527
528
529 BBoards
530
531
532 MH maintainers take note: the default home directory for the bboards login
533
534 has changed from /usr/bboards/ to /usr/spool/bboards/ . Use the bbhome
535
536 directive in your MH configuration file to set it back to the old value if you
537
538 wish.
539
540 In addition, the aliases field for a BBoard in the BBoards file is now
541
542 deemed useful only for addressing, not for user input to bbc . This means
543
544 when giving the name of a BBoard to bbc , only the official name should be
545
546 used.
547
548 A final note for mailsystem maintainers: the MMDF-II BBoards chan-
549
550 nel and the SendMail BBoards mailer have been modified to use the stan-
551
552 dard message encapsulation format when returning failed messages to the list
553
554 maintainer. This means that the failure notices that the maintainer receives
555
556 can simply be burst .
557
558
559
560 New Switches in bbc
561
562
563 The bbc program permits you to specify the mshproc to use on the command
564
565 line by using the `-mshproc program' option. There's also a `-rcfile file'
566
567 option which does "the obvious thing". In addition, options which aren't
568
569 understood by bbc are passed along to the mshproc.
570
571 In addition, the following commands pass any unrecognized switches on
572
573 to the program that they invoke: bbc , next , show , prev , and vmh .
574
575
576
577 Distributed BBoards
578
579
580 If both BBoards and POP (see the next section) are enabled, then distributed
581
582 BBoards can be supported on top of the POP service. This allows the MH
583
584 user to read BBoards on a server machine instead of the local host (which
585
586 saves a lot of wasted disk space when the same BBoards are replicated sev-
587
588 eral times at a site with several hosts). See the Administrator's Guide for
589
590 information on how this can be made completely transparent to the MH user.
591
592 If you have several machines at your site running 4.2bsd UNIX and con-
593
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.
597
598
599
600 9
601 \f
602
603
604
605 Visual Front-End to msh
606
607
608 A simple window management protocol has been implemented for MH pro-
609
610 grams that might wish to act as a back-end to a sophisticated visual front-
611
612 end.
613
614 The first implementation of a server side (front-end) program is vmh ,
615
616 which uses curses (3) to maintain a split-screen interface. Perhaps look for a
617
618 mhtool program for the SUN next!
619
620 The msh program has been modified to speak the client side (back-end)
621
622 of this protocol, if so directed. At present, msh is the only program in the
623
624 MH distribution which implements the client side of the window management
625
626 protocol.
627
628
629
630 Updates in msh
631
632
633 Prior to quitting, the msh command now asks if the packf 'd file you've been
634
635 perusing should be updated if you've modified it and the file is writable by
636
637 you. The file can be modified by using burst , rmm , rmm , or sortm commands.
638
639 The file can also be modified by using the refile command without the `-link'
640
641 option. (Or course, the `-link' option doesn't actually link anything to the
642
643 file.)
644
645
646
647 Distributed Mail
648
649
650 MH now contains a powerful facility for doing distributed mail (having MH
651
652 reside on a host different than the message transport agent). For general
653
654 information, consult either the MH.5: How to process 200 messages a day
655
656 and still get some real work done paper, or the MH: A Multifarious User
657
658 Agent paper. For specific information, consult the Administrator's Guide.
659
660 Here's a brief synopsis:
661
662 This POP facility in MH is based on a modification of the ARPA Post
663
664 Office Protocol (POP). A POP subscriber is a remote user, on a POP client
665
666 host, that wishes to pick-up mail on a POP service host.
667
668 There are two ways to administer POP:
669
670
671 - Naive Mode
672
673 Each user-id in the passwd (5) file is considered a POP subscriber. No
674
675
676
677 10
678 \f
679
680
681
682 changes are required for the mailsystem on the POP service host. How-
683
684 ever, this method requires that each POP subscriber have an entry in
685
686 the password file. The POP server will fetch the user's mail from wher-
687
688 ever maildrops are kept on the POP service host. This means that if
689
690 maildrops are kept in the user's home directory, then each POP sub-
691
692 scriber must have a home directory.
693
694
695 - Smart Mode
696
697 This is based on the notion that the list of POP subscribers and the
698
699 list of login users are completely separate name spaces. A separate
700
701 database (similar to the BBoards (5) file) is used to record information
702
703 about each POP subscriber. Unfortunately, the local mailsystem must
704
705 be changed to reflect this. This requires two changes (both of which
706
707 are simple):
708
709
710 1. Aliasing
711
712 The aliasing mechanism is augmented so that POP subscriber ad-
713
714 dresses are diverted to a special delivery mechanism. MH comes
715
716 with a program, popaka (8), which generates the additional infor-
717
718 mation to be put in the mailsystem's alias file.
719
720 2. Delivery
721
722 A special POP delivery channel (for MMDF-II ) or POP mailer (for
723
724 SendMail ) performs the actual delivery (mh.6 supplies both). All
725
726 it really does is just place the mail in the POP spool area.
727
728
729 Clever mailsystem people will note that the POP mechanism is really
730
731 a special case of the more general BBoards mechanism.
732
733
734 These two different philosophies are not compatible on the same POP service
735
736 host: one or the other, but not both, may be run.
737
738 In addition, there is one user-visible difference, which the administrator
739
740 controls the availability of. The difference is whether the POP subscriber
741
742 must supply a password to the POP server:
743
744
745 - ARPA standard method
746
747 This uses the standard ARPA technique of sending a username and a
748
749 password. The appropriate programs (inc , msgchk , and possibly bbc )
750
751 will prompt the user for this information.
752
753
754
755 11
756 \f
757
758
759
760 - UNIX remote method
761
762 This uses the Berkeley UNIX reserved port method for authentication.
763
764 This requires that the two or three mentioned above programs be setuid
765
766 to root. (There are no known holes in any of these programs.)
767
768
769 These two different philosophies are compatible on the same POP service
770
771 host: to selectively disable RPOP for hosts which aren't trusted, either mod-
772
773 ify the .rhosts file in the case of POP subscribers being UNIX logins, or zero
774
775 the contents of network address field of the pop (5) file for the desired POP
776
777 subscribers.
778
779 The inc command also has two other switches when MH is enabled for
780
781 POP: `-pack file' and `-nopack'. Normally, inc will use the POP to incor-
782
783 porate mail from a POP service host into an MH folder (+inbox). However,
784
785 there are some misguided individuals who prefer to msh to read their mail-
786
787 drop. By using the `-pack file' option, these individuals can direct inc to
788
789 fetch their maildrop from the POP service host and store it locally in the
790
791 named file. As expected, inc will treat the local file as a maildrop, performing
792
793 the appropriate locking protocols. And, if the file doesn't exist, the user is
794
795 now asked for confirmation.
796
797
798
799 Rcvmail hooks
800
801
802 In order to offer users of MH increased rcvmail hook functionality, the slocal
803
804 program has been upgraded to support the semantics of the MMDF-II mail-
805
806 delivery mechanism. This means that users of mh.6 can maintain identi-
807
808 cal .maildelivery files regardless of the underlying transport system. See
809
810 mhook (1) for all the details.
811
812
813
814 Change in rcvdist
815
816
817 The rcvdist rcvmail hook now uses the MH formatting facility when redis-
818
819 tributing a message.
820
821
822
823 Field change in rcvpack
824
825
826 The rcvpack rcvmail hook now adds the field name Delivery-Date: instead
827
828 of Cron-Date: to messages it pack s.
829
830
831
832 12
833 \f
834
835
836
837 GNU Emacs Support
838
839
840 James Larus' mh-e macro package for GNU Emacs (version 17) is included
841
842 in the distribution. When loaded in Emacs, this provides a handy front-end.
843
844
845
846 Other Changes
847
848
849 Here's the miscellany:
850
851
852
853 Continuation Lines
854
855
856 Alias files used by MH , display templates used by mhl , and format files used
857
858 by forw , repl , and scan all support a standard continuation line syntax. To
859
860 continue a line in one of these files, simply end the line with the backslash
861
862 character (`n'). All the other files used by MH are in 822-format, so the
863
864 822-continuation mechanism is used.7
865
866
867
868 Default Date Format
869
870
871 MH now uses numeric timezones instead of locally-meaningful alpha time-
872
873 zones when generating mail. This change was made to encourage the use
874
875 of unambiguous, globally-meaningful timezone strings. A local configura-
876
877 tion option can disable this correct behavior. All of the mhl templates have
878
879 been modified to use locally-meaningful alpha timezones when displaying
880
881 messages.
882
883
884
885 New switch in ali
886
887
888 The ali command now has a `-noalias' switch to prevent system-wide aliases
889
890 from being interpreted.
891
892
893
894 Modifications to show
895
896
897 The `-format', `-noformat', `-pr', and `-nopr' options to show have gone away
898
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.
902
903
904
905 13
906 \f
907
908
909
910 show (or next or prev ) to use the named program as the showproc. The
911
912 `-noshowproc' option tells show , et. al., to use the cat (1) program instead of
913
914 a showproc. As a result, the profile entry prproc is no longer used.
915
916
917
918 Switch change in inc
919
920
921 The `-ms ms-file' switch in inc has been changed to `-file name' to be
922
923 more consistent.
924
925
926
927 Front-End to mhl
928
929
930 When outputting to a terminal, the mhl program now runs the program
931
932 denoted by the profile entry moreproc. If this entry is not present, the
933
934 default is the UCB more program. If the entry is non-empty, then that
935
936 program is spliced between mhl and the user's terminal. The author uses the
937
938 less program as his moreproc.
939
940 Of course, if mhl isn't outputting to a terminal, then moreproc is not
941
942 invoked.
943
944 Finally, to aid in the construction of replies, a prefix string may be speci-
945
946 fied for the body component of the message being replied-to. Simply use the
947
948 component= construct in mhl for body:.
949
950
951
952 Confirmation in packf
953
954
955 If the file specified by the `-file name' switch doesn't exist, the user is now
956
957 asked for confirmation.
958
959
960
961 Complex Expressions in pick
962
963
964 The pick command now handles complex boolean expressions.
965
966
967
968 Defaults change in prompter and burst
969
970
971 The `-prepend' option is now the default in prompter . The `-noinplace'
972
973 option is now the default in burst .
974
975
976
977 14
978 \f
979
980
981
982 Fcc:s and post
983
984
985 If multiple Fcc:s for a message are specified during posting, post will try much
986
987 harder to preserve links.
988
989
990
991 Interactive option in rmf
992
993
994 The rmf program has been changed to support an `-interactive' switch.
995
996 If given, then the user is prompted regarding whether the folder should be
997
998 deleted. If the folder to be removed is not given by the user, this switch is
999
1000 defaulted to on.
1001
1002
1003
1004 Trusted Mail Interface
1005
1006
1007 MH now has an interface for so-called "trusted mail" applications. Although
1008
1009 the modifications to MH to support this are in the public domain, the actual
1010
1011 library that MH uses is not. Contact Professor David J. Farber (Farber@UDel)
1012
1013 for more information.
1014
1015
1016
1017 References
1018
1019
1020 [MRose85] Marshall T. Rose and John L. Romine. The Rand MH Message
1021
1022 Handling System: User's Manual. Department of Information
1023
1024 and Computer Science, University of California, Irvine, mh.6 edi-
1025
1026 tion, November, 1985. UCI Version.
1027
1028
1029
1030 15