1 .\" This file is automatically generated. Do not edit!
2 .\" @(#)$Id: mhn.rf,v 1.14 1993/10/26 20:12:56 jromine Exp $
8 \%[\%[+folder] \%[msgs] | \%[\-file\0file]]
10 \%[\-part\0number]... \%[\-type\0content]...
12 \%[\-list\0\%[\-headers]\0\%[\-noheaders]
14 \%[\-realsize]\0\%[\-norealsize]] \%[-nolist]
16 \%[\-show\0\%[\-serialonly]\0\%[\-noserialonly]
18 \%[\-form\0formfile]\0\%[\-pause]\0\%[\-nopause]] \%[\-noshow]
20 \%[\-store\0\%[\-auto]\0\%[\-noauto]] \%[\-nostore]
22 \%[\-cache] \%[\-nocache] \%[\-rcache\0policy] \%[\-wcache\0policy]
24 \%[\-check]\0\%[\-nocheck]
26 \%[\-ebcdicsafe]\0\%[\-noebcdicsafe]
28 \%[\-rfc934mode]\0\%[\-norfc934mode]
30 \%[\-verbose]\0\%[\-noverbose]
34 The \fImhn\fR command manipulates multi-media messages as specified in
37 Four action switches direct the operation of \fImhn\fR,
38 namely `\-list', `\-show', `\-store', and `-cache'.
39 Any of these switches may be used concurrently.
40 Normally these action switches will operate on the content of each of the
43 by using the `\-part' and `\-type' switches,
44 the scope of the operation can be focused on particular
45 subparts (of a multipart content) and/or particular content types.
47 A part specification consists of a series of numbers separated by dots.
49 in a multipart content containing three parts,
50 these would be named as 1, 2, and 3, respectively.
51 If part 2 was also a multipart content containing two parts,
52 these would be named as 2.1 and 2.2, respectively.
53 Note that the `\-part' switch is effective for only messages
54 containing a multipart content.
55 If a message has some other kind of content,
56 or if the part is itself another multipart content,
57 the `\-part' switch will not prevent the content from being acted upon.
59 A content specification consists of a content type and a subtype.
60 The initial list of \*(lqstandard\*(rq content types and subtypes can be found
63 A list of commonly used contents is briefly reproduced here:
71 multipart mixed, alternative, digest, parallel
72 message rfc822, partial, external-body
73 application octet-stream, postscript
74 image jpeg, gif, x-pbm, x-pgm, x-ppm, x-xwd
81 Subtypes are mandatory.
84 regardless of its subtype,
85 just use the name of the content,
88 To specify a specific subtype,
89 separate the two with a slash,
91 \*(lqaudio/basic\*(rq.
92 Note that regardless of the values given to the `\-type' switch,
93 a multipart content (of any subtype listed above) is always acted upon.
94 Further note that if the `\-type' switch is used,
95 and it is desirable to act on a message/external-body content,
96 then the `\-type' switch must be used twice:
97 once for message/external-body and once for the content externally referenced.
99 Each content may optionally have an integrity check associated with it.
100 If present and the `-check' switch is given,
101 then \fImhn\fR will attempt to verify the integrity of the content.
103 The option `\-file\ file' directs \fImhn\fR to use the specified
104 file as the source message, rather than a message from
106 Note that the file should be a validly formatted message,
107 just like any other \fIMH\fR message.
108 It should \fBNOT\fR be in mail drop format
109 (to convert a file in mail drop format to a folder of \fIMH\fR messages,
112 .Uh "Listing the Contents"
113 The `\-list' switch tells \fImhn\fR to list the table of contents
114 associated with the named messages.
115 The `\-headers' switch indicates that a one-line banner should be
116 displayed above the listing.
117 The `\-realsize' switch tells \fImhn\fR to evaluate the \*(lqnative\*(rq
118 (decoded) format of each content prior to listing.
119 This provides an accurate count at the expense of a small delay.
121 .Uh "Showing the Contents"
122 The `\-show' switch tells \fImhn\fR to display the contents of the named
124 The headers of the message are displayed with the \fImhlproc\fR,
125 using format file \fImhl.headers\fR.
126 (The choice of format file can be overridden by the `\-form\0formfile' switch.)
128 \fImhn\fR will look for information in the user's profile to determine
129 how the different contents should be displayed.
130 This is accomplished by consulting a display string,
131 and executing it under \fB/bin/sh\fR,
132 with the standard input set to the content.
134 The display string may contain these escapes:
139 %a additional arguments
140 %e exclusive execution
141 %f filename containing content
142 %F %e, %f, and stdin is terminal not content
143 %l display listing prior to displaying content
144 %p %l, and ask for confirmation
146 %d content description
151 For those display strings containing the e- or F-escape,
152 \fImhn\fR will execute at most one of these at any given time.
153 Although the F-escape expands to be the filename containing the content,
154 the e-escape has no expansion as far as the shell is concerned.
156 When the p-escape prompts for confirmation,
157 typing INTR (usually control-C) will tell \fImhn\fR not to display
159 (The p-escape can be disabled by specifying `\-nopause'.)
161 when \fImhn\fR is display a content,
162 typing QUIT (usually control-\\) will tell \fImhn\fR to wrap things up
165 Note that if the content being displayed is multipart,
166 but not one of the subtypes listed above,
167 then the f- and F-escapes expand to multiple filenames,
168 one for each subordinate content.
170 stdin is not redirected from the terminal to the content.
173 \fImhn\fR will look for an entry of the form:
176 mhn-show-<type>/<subtype>
179 to determine the command to use to display the content.
181 \fImhn\fR will look for an entry of the form:
187 to determine the display command.
190 \fImhn\fR has two default values:
194 mhn-show-text/plain: %pmoreproc '%F'
195 mhn-show-message/rfc822: %pshow -file '%F'
200 \fImhn\fR will check to see if the message has a application/octet-stream
201 content with parameter \*(lqtype=tar\*(rq.
203 \fImhn\fR will use an appropriate command.
205 \fImhn\fR will complain.
208 Example entries might be:
212 mhn-show-audio/basic: raw2audio 2>/dev/null | play
213 mhn-show-image: xv '%f'
214 mhn-show-application/PostScript: lpr -Pps
218 Note that when using the f- or F-escape,
219 it's a good idea to use single-quotes around the escape.
220 This prevents misinterpretation by the shell of any funny characters
221 that might be present in the filename.
223 Because the text content might be in a non-ASCII character set,
224 when \fImhn\fR encounters a \*(lqcharset\*(rq parameter for this content,
225 it checks to see whether the environment variable $MM_CHARSET is set
226 and whether the value of this environment variable is equal to the value of
227 the charset parameter.
230 \fImhn\fR will look for an entry of the form:
233 mhn-charset-<charset>
236 which should contain a command creating an environment to render the
238 This command string should containing a single \*(lq%s\*(rq,
239 which will be filled-in with the command to display the content.
241 An example entry might be:
244 mhn-charset-iso-8859-1: xterm -fn '-*-*-medium-r-normal-*-*-120-*-*-c-*-iso8859-*' -e %s
247 Note that many pagination programs strip off the high-order bit.
249 newer releases of the \fIless\fR program have modest support for
250 single-octet character sets.
251 The source to \fIless\fR version 177,
252 which has such support,
253 is found in the MH source tree under \fBmiscellany/less-177\fR.
254 In order to view messages sent in the ISO 8859/1 character set using
257 put these lines in your \&.login file:
261 setenv LESSCHARSET latin1
266 The first line tells \fIless\fR to use 8859/1 definition for determing
267 whether a character is \*(lqnormal\*(rq, \*(lqcontrol\*(lq, or
269 The second line tells \fIless\fR not to warn you if it encounters a
270 file that has non-ASCII characters.
272 simply set the \fBmoreproc\fR profile entry to \fIless\fR,
273 and it will get called automatically.
274 (To handle other single-octet character sets,
275 look at the \fIless\fR\0(1) manual entry for information about the
276 \fBLESSCHARDEF\fR environment variable.)
279 \fImhn\fR will process each message serially\0--\0it won't start showing
280 the next message until all the commands executed to display the
281 current message have terminated.
282 In the case of a multipart content (of any subtype listed above),
283 the content contains advice indicating if the parts should be
284 displayed serially or in parallel.
285 Because this may cause confusion,
286 particularly on uni-window displays,
287 the `\-serialonly' switch can be given to tell \fImhn\fR to never
288 display parts in parallel.
290 .Uh "Storing the Contents"
291 The `\-store' switch tells \fImhn\fR to store the contents of the
292 named messages in \*(lqnative\*(rq (decoded) format.
293 Two things must be determined:
294 the directory to store the content,
296 Files are written in the directory given by the \fBmhn-storage\fR
305 If this entry isn't present,
306 the current working directory is used.
308 \fImhn\fR will look for information in the user's profile to determine
309 how the different contents should be stored.
310 This is achieved through the use of a formatting string,
312 which may contain these escapes:
325 If the content isn't part of a multipart (of any subtype listed above) content,
326 the p-escapes are ignored.
327 Note that if the formatting string starts with a \*(lq+\*(rq character,
328 then these escapes are ignored,
329 and the content is stored in the named folder.
330 (A formatting string consisting solely of a \*(lq+\*(rq character
331 indicates the current folder.)
333 a formatting string consisting solely of a \*(lq-\*(rq character
334 indicates the standard-output.
337 \fImhn\fR will look for an entry of the form:
340 mhn-store-<type>/<subtype>
343 to determine the formatting string.
345 \fImhn\fR will look for an entry of the form:
351 to determine the formatting string.
353 \fImhn\fR will check to see if the content is application/octet-stream
354 with parameter \*(lqtype=tar\*(rq.
356 \fImhn\fR will choose an appropriate filename.
357 If the content is not application/octet-stream,
358 then \fImhn\fR will check to see if the content is a message.
360 \fImhn\fR will use the value \*(lq+\*(rq.
362 \fImhn\fR will use the value \*(lq%m%P.%s\*(rq.
364 Note that if the formatting string starts with a '/',
365 then content will be stored in the full path given
366 (rather than using the value of \fBmhn-storage\fR or the current working
369 if the formatting string starts with a '|',
370 then \fImhn\fR will execute a command which should ultimately store
372 Note that before executing the command,
373 \fImhn\fR will change to the appropriate directory.
374 Also note that if the formatting string starts with a '|',
375 then \fImhn\fR will also honor the a-escape when processing the
379 Example entries might be:
383 mhn-store-text: %m%P.txt
384 mhn-store-audio/basic: | raw2audio -e ulaw -s 8000 -c 1 > %m%P.au
385 mhn-store-application/PostScript: %m%P.ps
390 note that when asked to store a content containing a partial message,
391 \fImhn\fR will try to locate all of the portions and combine them accordingly.
393 if someone's sent you a message in several parts,
394 you might put them all in their own folder and do:
400 This will store exactly one message,
401 containing the sum of the parts.
402 Note that if \fImhn\fR can not locate each part,
403 it will not store anything.
406 if the `\-auto' switch is given and the content contains information
407 indicating the filename the content should be stored as
408 (and if the filename doesn't begin with a '/'),
409 then the filename from the content will be used instead.
411 .Uh "External Access"
412 For contents of type message/external-body,
414 \fImhn\fR supports these access-types:
426 For the \*(lqanon-ftp\*(rq and \*(lqftp\*(rq access types,
427 if your system supports a SOCKETs interface to TCP/IP,
428 then \fImhn\fR will use a built-in FTP client.
430 \fImhn\fR will look for the \fBmhn-access-ftp\fR profile entry,
435 mhn-access-ftp: myftp.sh
438 to determine the pathname of a program to perform the FTP retrieval.
440 This program is invoked with these arguments:
444 domain name of FTP-site
450 \*(lqascii\*(rq or \*(lqbinary\*(rq
454 The program should terminate with a zero-valued exit-status if the
455 retrieval is successful.
457 .Uh "The Content Cache"
458 When \fImhn\fR encounters an external content containing a
459 \*(lqContent-ID:\*(rq field,
460 and if the content allows caching,
461 then depending on the caching behavior of \fImhn\fR,
462 the content might be read from or written to a cache.
464 The caching behavior of \fImhn\fR is controlled with
465 the `\-rcache' and `\-wcache' switches,
466 which define the policy for reading from,
468 the cache, respectively.
469 One of four policies may be specified:
471 indicating that \fImhn\fR should make use of a
472 publically-accessible content cache;
474 indicating that \fImhn\fR should make use of the user's
475 private content cache;
477 indicating that \fImhn\fR should never make use of caching;
480 indicating that \fImhn\fR should ask the user.
482 There are two directories where contents may be cached:
483 the profile entry \fBmhn-cache\fR names a directory containing
484 world-readable contents,
486 the profile entry \fBmhn-private-cache\fR names a directory containing
488 The former should be an absolute (rooted) directory name.
496 might be used if you didn't care that the cache got wiped after each reboot
498 The latter is interpreted relative to the user's MH directory,
504 mhn-private-cache: .cache
507 (which is the default value).
509 .Uh "Caching the Contents"
510 When you encounter a content of type message/external-body with access type
511 \*(lqmail-server\*(rq,
512 \fImhn\fR will ask you if may send a message to a mail-server
513 requesting the content,
520 Retrieve content by asking mail-server@...
529 Regardless of your decision,
530 \fImhn\fR can't perform any other processing on the content.
533 if \fImhn\fR is allowed to request the content,
534 then when it arrives,
535 there should be a top-level \*(lqContent-ID:\*(rq field which
536 corresponds to the value in the original message/external-body content.
537 You should now use the `-cache' switch to tell \fImhn\fR to enter the
538 arriving content into the content cache,
545 caching message 2 as file ...
549 You can then re-process the original message/external-body content,
550 and \*(lqthe right thing should happen\*(rq,
561 .Uh "Composing the Contents"
562 The \fImhn\fR program can also be used as a simple editor to aid in
563 composing multi-media messages.
564 When invoked by a \fIwhatnow\fR program,
565 \fImhn\fR will expect the body of the draft to be formatted as an
566 \*(lq\fImhn\fR composition file.\*(rq
569 The syntax of this is straight-forward:
573 body ::= 1*(content | EOL)
575 content ::= directive | plaintext
577 directive ::= "#" type "/" subtype
578 0*(";" attribute "=" value)
581 [ "[" description "]" ]
585 | "#@" type "/" subtype
586 0*(";" attribute "=" value)
589 [ "[" description "]" ]
595 [ "[" description "]" ]
596 [ "+"folder ] [ 0*msg ]
601 [ "[" description "]" ]
609 plaintext ::= [ "Content-Description:"
610 description EOL EOL ]
614 | "#<" type "/" subtype
615 0*(";" attribute "=" value)
617 [ "[" description "]" ]
622 line ::= "##" text EOL
623 -- interpreted as "#"text EOL
629 the body contains one or more contents.
630 A content consists of either a directive,
631 indicated with a \*(lq#\*(rq as the first character of a line;
633 plaintext (one or more lines of text).
634 The continuation character, \*(lq\\\*(lq, may be used to enter a single
636 directive on more than one line,
641 #@application/octet-stream; \\
643 x-conversions=compress
647 There are four kinds of directives:
648 \*(lqtype\*(rq directives,
649 which name the type and subtype of the content;
650 \*(lqexternal-type\*(rq directives,
651 which also name the type and subtype of the content;
652 the \*(lqforw\*(rq directive,
653 which is used to forward a digest of messages;
655 the \*(lqbegin\*(rq directive,
656 which is used to create a multipart content.
658 For the type directives,
659 the user may optionally specify the name of a file containing the
660 contents in \*(lqnative\*(rq (decoded) format.
661 (If the filename starts with the \*(lq|\*(rq character,
662 then this gives a command whose output is captured accordingly.)
663 If a filename is not given,
664 \fImhn\fR will look for information in the user's profile to determine
665 how the different contents should be composed.
666 This is accomplished by consulting a composition string,
667 and executing it under \fB/bin/sh\fR,
668 with the standard output set to the content.
670 The composition string may contain these escapes:
675 %a additional arguments
676 %f filename containing content
677 %F %f, and stdout is not re-directed
684 \fImhn\fR will look for an entry of the form:
687 mhn-compose-<type>/<subtype>
690 to determine the command to use to compose the content.
692 \fImhn\fR will look for an entry of the form:
698 to determine the composition command.
700 \fImhn\fR will complain.
702 An example entry might be:
705 mhn-compose-audio/basic: record | raw2audio -F
708 Because commands like these will vary,
709 depending on the display environment used for login,
710 composition strings for different contents should probably be put in
711 the file specified by the \fB$MHN\fR environment variable,
712 instead of directly in your user profile.
714 The external-type directives are used to provide a reference to a content,
715 rather than enclosing the contents itself.
717 instead of providing a filename as with the type directives,
718 external-parameters are supplied.
719 These look like regular parameters,
721 so they must be separated accordingly,
726 #@application/octet-stream; \\
728 x-conversions=compress [] \\
729 access-type=anon-ftp; \\
730 name="mh-mime.tar.Z"; \\
731 directory="mrose/mh-mime"; \\
732 site="ftp.ics.uci.edu"
736 By specifying \*(lq[]\*(rq,
737 an empty description string is given,
738 and the start of the external-parameters is identified.
740 These parameters are of the form:
744 .ta \w'access-type= 'u
745 access-type= usually \fIanon-ftp\fR or \fImail-server\fR
747 permission= read-only or read-write
749 directory= directoryname (optional)
750 mode= usually \fIascii\fR or \fIimage\fR (optional)
751 size= number of octets
753 subject= subject to send
754 body= command to send for retrieval
760 For the forw directive,
761 the user may optionally specify the name of the folder and which
762 messages are to be forwarded.
763 if a folder is not given,
764 it defaults to the current folder.
766 if a message is not given,
767 it defaults to the current message.
769 the forw directive is similar to the \fIforw\fR\0(1) command,
770 except that the former uses the MIME rules for encapsulation
771 rather than those specified in RFC 934.
772 Usage of the `\-rfc934mode' switch indicates whether \fImhn\fR should
773 attempt to utilize the encapsulation rules in such a way as to appear
774 that RFC 934 is being used.
776 then RFC 934-compliant user-agents should be able to burst the message on
777 reception\0--\0providing that the messages being encapsulated do not
778 contain encapsulated messages themselves.
779 The drawback of this approach is that the encapsulations are generated
780 by placing an extra newline at the end of the body of each message.
782 For the begin directive,
783 the user must specify at least one content between
784 the begin and end pairs.
786 For all of these directives,
787 the user may include a brief description of the content between
788 the \*(lq[\*(rq character and the \*(lq]\*(rq character.
790 \fImhn\fR will generate a unique \*(lqContent-ID:\*(rq for each directive;
792 the user may override this by defining the ID using the
793 \*(lq<\*(rq and \*(lq>\*(rq characters.
794 Putting this all together,
796 here is a brief example of what a user's components file might look like:
804 #audio/basic [Flint phone] \\
805 |raw2audio -F < /home/mrose/lib/multi-media/flint.au
806 #image/gif [MTR's photo] \\
807 /home/mrose/lib/multi-media/mrose.gif
812 we'll call this components file \fImhncomps\fR.
815 in addition to directives,
816 plaintext can be present.
817 Plaintext is gathered,
818 until a directive is found or the draft is exhausted,
819 and this is made to form a text content.
820 If the plaintext must contain a \*(lq#\*(rq at the beginning of a line,
826 ##when sent, this line will start with only one #
829 If you want to end the plaintext prior to a directive,
831 to have two plaintext contents adjacent,
832 simply insert a line containing a single \*(lq#\*(rq character,
838 this is the first content
840 and this is the second
845 if the plaintext starts with a line of the form:
848 Content-Description: text
851 then this will be used to describe the plaintext content.
852 \fBNOTE WELL:\fR you must follow this line with a blank line before
856 plaintext is captured as a text/plain content.
857 You can override this by starting the plaintext with \*(lq#<\*(rq
858 followed by a content-type specification,
865 this content will be tagged as text/richtext
867 and this content will be tagged as text/plain
871 Note that if you use the \*(lq#<\*(rq plaintext-form,
872 then the content-description must be on the same line which identifies
873 the content type of the plaintext.
875 If \fImhn\fR is successful,
876 it renames the original draft to start with the \*(lq,\*(rq character
877 and end with the string \*(lq.orig\*(rq,
879 if you are editing the file \*(lqdraft\*(rq,
880 it will be renamed to \*(lq,draft.orig\*(rq.
881 This allows you to easily recover the \fImhn\fR composition file.
883 If the `-check' switch is given,
884 \fImhn\fR will associate an integrity check with each content.
886 .Uh "Automatic Composition"
887 Note that MH will not invoke \fImhn\fR automatically,
888 unless you add this line to your \&.mh\(ruprofile file:
895 you must specifically give the command
901 prior to sending the draft.
903 You can easily tailor MH to help you remember to do this.
905 Suppose you have these lines in your profile:
909 mcomp: -editor mprompter -form mhncomps
910 mprompter: -noprepend -norapid
915 where \fImcomp\fR is a link to \fIcomp\fR\0(1),
916 and \fImprompter\fR is a link to \fIprompter\fR\0(1).
917 Then to send a message using the \fImhncomps\fR components file above,
926 Subject: \fBmulti-media message\fR
928 #audio/basic [Flint phone] \\
929 |raw2audio -F < /home/mrose/lib/multi-media/flint.au
930 #image/gif [MTR's photo] \\
931 /home/mrose/lib/multi-media/mrose.gif
933 --------Enter additional text
935 \fBThis message contains three contents.\fR
939 What now? \fBedit\fR (this invokes \fImhn\fR)
945 You have to remember to type the additional edit command,
946 but it should be fairly obvious from the interaction.
949 you should consider adding this line to your profile:
956 if you decide to \fBlist\fR after invoking \fImhn\fR as your editor,
963 will work as you expect.
965 .Uh "Sending Files via Mail"
966 When you want to send a bunch of files to someone,
967 you can run the \fIviamail\fR shell script,
968 which is similar the tarmail command:
971 /opt/mh-6.8.5/lib/viamail mailpath \*(lqsubject\*(rq files\0...
974 \fIviamail\fR will archive the directories/files you name with \fItar\fR\0(1),
975 and then mail the compressed archive to the `mailpath' with the given
977 The archive will be automatically split up into as many messages as
978 necessary in order to get past most mailers.
980 Sometimes you want \fIviamail\fR to pause after posting a partial message.
981 This is usually the case when you are running \fIsendmail\fR and
982 expect to generate a lot of partial messages.
983 If the first argument given to \fIviamail\fR starts with a dash,
984 then it is interpreted as the number of seconds to pause in between postings,
989 /opt/mh-6.8.5/lib/viamail -300 mailpath \*(lqsubject\*(rq files\0...
992 will pause 5 minutes in between each posting.
994 When these messages are received,
995 invoke \fImhn\fR once,
996 with the list of messages,
997 and the `\-store' command.
998 The \fImhn\fR program will then store exactly one message containing the
1000 You can then use `\-show' to find out what's inside;
1001 possibly followed by `\-store' to write the archive to a file where you
1003 can subsequently uncompress and untar it, e.g.,
1008 msg part type/subtype size description
1009 1 message/partial 47K part 1 of 4
1010 2 message/partial 47K part 2 of 4
1011 3 message/partial 47K part 3 of 4
1012 4 message/partial 18K part 4 of 4
1014 % mhn -list -verbose last
1015 msg part type/subtype size description
1016 5 application/octet-stream 118K
1017 (extract with uncompress | tar xvpf -)
1019 x-conversions=compress
1021 msg part type/subtype size description
1022 5 application/octet-stream 118K
1023 -- headers of message, followed by \fItar\fR listing appears here
1025 % uncompress < 5.tar.Z | tar xvpf -
1030 by using the `\-auto' switch,
1031 \fImhn\fR will automatically do the extraction for you,
1038 msg part type/subtype size description
1039 1 message/partial 47K part 1 of 4
1040 2 message/partial 47K part 2 of 4
1041 3 message/partial 47K part 3 of 4
1042 4 message/partial 18K part 4 of 4
1044 % mhn -list -verbose last
1045 msg part type/subtype size description
1046 5 application/octet-stream 118K
1047 (extract with uncompress | tar xvpf -)
1049 x-conversions=compress
1051 msg part type/subtype size description
1052 5 application/octet-stream 118K
1053 -- headers of message, followed by \fItar\fR listing appears here
1054 % mhn -store -auto last
1055 -- \fItar\fR listing appears here as files are extracted
1059 As the second \fItar\fR listing is generated,
1060 the files are extracted.
1061 A prudent user will never put `\-auto' in the \&.mh\(ruprofile file.
1062 The correct procedure is to first use `\-show',
1063 to find out what will be extracted.
1064 Then \fImhn\fR can be invoked with `\-store' and `\-auto' to perform
1067 .Uh "User Environment"
1068 Because the display environment in which \fImhn\fR operates may vary
1070 \fImhn\fR will look for the environment variable \fB$MHN\fR.
1072 this specifies the name of an additional user profile which should be read.
1074 when a user logs in on a particular display device,
1075 this environment variable should be set to refer to a file containing
1076 definitions useful for the display device.
1078 only entries of the form
1081 mhn-show-<type>/<subtype>
1088 \fImhn\fR will attempt to consult one other additional user profile,
1093 /opt/mh-6.8.5/lib/mhn_defaults
1096 which is created automatically during MH installation.
1098 ^$HOME/\&.mh\(ruprofile~^The user profile
1099 ^$MHN~^Additional profile entries
1100 ^/opt/mh-6.8.5/lib/mhn_defaults~^System-default profile entries
1101 ^/opt/mh-6.8.5/lib/mhl.headers~^The headers template
1103 ^Path:~^To determine the user's MH directory
1105 ^Current\-Folder:~^To find the default current folder
1107 ^mhlproc:~^Default program to display message headers
1109 ^mhn-access-ftp:~^Program to retrieve contents via FTP
1111 ^mhn-cache~^Public directory to store cached external contents
1113 ^mhn-charset-<charset>~^Template for environment to render character sets
1115 ^mhn-compose-<type>*~^Template for composing contents
1117 ^mhn-private-cache~^Personal directory to store cached external contents
1119 ^mhn-show-<type>*~^Template for displaying contents
1121 ^mhn-storage~^Directory to store contents
1123 ^mhn-store-<type>*~^Template for storing contents
1125 ^moreproc:~^Default program to display text/plain content
1129 \fIMIME: Mechanisms for Specifying and Describing the Format of
1130 Internet Message Bodies\fR
1133 \fIProposed Standard for Message Encapsulation\fR
1136 `+folder' defaults to the current folder
1138 `msgs' defaults to cur
1148 `\-form\0mhl.headers'
1168 If a folder is given,
1169 it will become the current folder.
1170 The last message selected will become the current message.
1172 Partial messages contained within a multipart content are not reassembled
1173 with the `\-store' switch.