9 date 93.10.26.20.12.56; author jromine; state Exp;
14 date 93.10.26.16.23.27; author jromine; state Exp;
19 date 93.10.26.16.02.50; author jromine; state Exp;
24 date 93.09.09.22.32.07; author jromine; state Exp;
29 date 93.09.01.20.49.46; author jromine; state Exp;
34 date 93.08.20.15.42.08; author jromine; state Exp;
39 date 92.12.10.23.59.10; author jromine; state Exp;
44 date 92.11.16.22.31.42; author jromine; state Exp;
49 date 92.11.02.16.58.55; author jromine; state Exp;
54 date 92.10.26.16.55.42; author jromine; state Exp;
59 date 92.10.20.20.30.08; author jromine; state Exp;
64 date 92.10.16.17.12.29; author jromine; state Exp;
69 date 92.03.03.17.13.54; author jromine; state Exp;
74 date 92.01.31.16.26.38; author jromine; state Exp;
90 .\" @@(#)$Id: mhn.rf,v 1.13 1993/10/26 16:23:27 jromine Exp jromine $
96 \%[\%[+folder] \%[msgs] | \%[\-file\0file]]
98 \%[\-part\0number]... \%[\-type\0content]...
100 \%[\-list\0\%[\-headers]\0\%[\-noheaders]
102 \%[\-realsize]\0\%[\-norealsize]] \%[-nolist]
104 \%[\-show\0\%[\-serialonly]\0\%[\-noserialonly]
106 \%[\-form\0formfile]\0\%[\-pause]\0\%[\-nopause]] \%[\-noshow]
108 \%[\-store\0\%[\-auto]\0\%[\-noauto]] \%[\-nostore]
110 \%[\-cache] \%[\-nocache] \%[\-rcache\0policy] \%[\-wcache\0policy]
112 \%[\-check]\0\%[\-nocheck]
114 \%[\-ebcdicsafe]\0\%[\-noebcdicsafe]
116 \%[\-rfc934mode]\0\%[\-norfc934mode]
118 \%[\-verbose]\0\%[\-noverbose]
122 The \fImhn\fR command manipulates multi-media messages as specified in
125 Four action switches direct the operation of \fImhn\fR,
126 namely `\-list', `\-show', `\-store', and `-cache'.
127 Any of these switches may be used concurrently.
128 Normally these action switches will operate on the content of each of the
131 by using the `\-part' and `\-type' switches,
132 the scope of the operation can be focused on particular
133 subparts (of a multipart content) and/or particular content types.
135 A part specification consists of a series of numbers separated by dots.
137 in a multipart content containing three parts,
138 these would be named as 1, 2, and 3, respectively.
139 If part 2 was also a multipart content containing two parts,
140 these would be named as 2.1 and 2.2, respectively.
141 Note that the `\-part' switch is effective for only messages
142 containing a multipart content.
143 If a message has some other kind of content,
144 or if the part is itself another multipart content,
145 the `\-part' switch will not prevent the content from being acted upon.
147 A content specification consists of a content type and a subtype.
148 The initial list of \*(lqstandard\*(rq content types and subtypes can be found
151 A list of commonly used contents is briefly reproduced here:
155 .ta \w'application 'u
159 multipart mixed, alternative, digest, parallel
160 message rfc822, partial, external-body
161 application octet-stream, postscript
162 image jpeg, gif, x-pbm, x-pgm, x-ppm, x-xwd
169 Subtypes are mandatory.
171 To specify a content,
172 regardless of its subtype,
173 just use the name of the content,
176 To specify a specific subtype,
177 separate the two with a slash,
179 \*(lqaudio/basic\*(rq.
180 Note that regardless of the values given to the `\-type' switch,
181 a multipart content (of any subtype listed above) is always acted upon.
182 Further note that if the `\-type' switch is used,
183 and it is desirable to act on a message/external-body content,
184 then the `\-type' switch must be used twice:
185 once for message/external-body and once for the content externally referenced.
187 Each content may optionally have an integrity check associated with it.
188 If present and the `-check' switch is given,
189 then \fImhn\fR will attempt to verify the integrity of the content.
191 The option `\-file\ file' directs \fImhn\fR to use the specified
192 file as the source message, rather than a message from
194 Note that the file should be a validly formatted message,
195 just like any other \fIMH\fR message.
196 It should \fBNOT\fR be in mail drop format
197 (to convert a file in mail drop format to a folder of \fIMH\fR messages,
200 .Uh "Listing the Contents"
201 The `\-list' switch tells \fImhn\fR to list the table of contents
202 associated with the named messages.
203 The `\-headers' switch indicates that a one-line banner should be
204 displayed above the listing.
205 The `\-realsize' switch tells \fImhn\fR to evaluate the \*(lqnative\*(rq
206 (decoded) format of each content prior to listing.
207 This provides an accurate count at the expense of a small delay.
209 .Uh "Showing the Contents"
210 The `\-show' switch tells \fImhn\fR to display the contents of the named
212 The headers of the message are displayed with the \fImhlproc\fR,
213 using format file \fImhl.headers\fR.
214 (The choice of format file can be overridden by the `\-form\0formfile' switch.)
216 \fImhn\fR will look for information in the user's profile to determine
217 how the different contents should be displayed.
218 This is accomplished by consulting a display string,
219 and executing it under \fB/bin/sh\fR,
220 with the standard input set to the content.
222 The display string may contain these escapes:
227 %a additional arguments
228 %e exclusive execution
229 %f filename containing content
230 %F %e, %f, and stdin is terminal not content
231 %l display listing prior to displaying content
232 %p %l, and ask for confirmation
234 %d content description
239 For those display strings containing the e- or F-escape,
240 \fImhn\fR will execute at most one of these at any given time.
241 Although the F-escape expands to be the filename containing the content,
242 the e-escape has no expansion as far as the shell is concerned.
244 When the p-escape prompts for confirmation,
245 typing INTR (usually control-C) will tell \fImhn\fR not to display
247 (The p-escape can be disabled by specifying `\-nopause'.)
249 when \fImhn\fR is display a content,
250 typing QUIT (usually control-\\) will tell \fImhn\fR to wrap things up
253 Note that if the content being displayed is multipart,
254 but not one of the subtypes listed above,
255 then the f- and F-escapes expand to multiple filenames,
256 one for each subordinate content.
258 stdin is not redirected from the terminal to the content.
261 \fImhn\fR will look for an entry of the form:
264 mhn-show-<type>/<subtype>
267 to determine the command to use to display the content.
269 \fImhn\fR will look for an entry of the form:
275 to determine the display command.
278 \fImhn\fR has two default values:
282 mhn-show-text/plain: %pmoreproc '%F'
283 mhn-show-message/rfc822: %pshow -file '%F'
288 \fImhn\fR will check to see if the message has a application/octet-stream
289 content with parameter \*(lqtype=tar\*(rq.
291 \fImhn\fR will use an appropriate command.
293 \fImhn\fR will complain.
296 Example entries might be:
300 mhn-show-audio/basic: raw2audio 2>/dev/null | play
301 mhn-show-image: xv '%f'
302 mhn-show-application/PostScript: lpr -Pps
306 Note that when using the f- or F-escape,
307 it's a good idea to use single-quotes around the escape.
308 This prevents misinterpretation by the shell of any funny characters
309 that might be present in the filename.
311 Because the text content might be in a non-ASCII character set,
312 when \fImhn\fR encounters a \*(lqcharset\*(rq parameter for this content,
313 it checks to see whether the environment variable $MM_CHARSET is set
314 and whether the value of this environment variable is equal to the value of
315 the charset parameter.
318 \fImhn\fR will look for an entry of the form:
321 mhn-charset-<charset>
324 which should contain a command creating an environment to render the
326 This command string should containing a single \*(lq%s\*(rq,
327 which will be filled-in with the command to display the content.
329 An example entry might be:
332 mhn-charset-iso-8859-1: xterm -fn '-*-*-medium-r-normal-*-*-120-*-*-c-*-iso8859-*' -e %s
335 Note that many pagination programs strip off the high-order bit.
337 newer releases of the \fIless\fR program have modest support for
338 single-octet character sets.
339 The source to \fIless\fR version 177,
340 which has such support,
341 is found in the MH source tree under \fBmiscellany/less-177\fR.
342 In order to view messages sent in the ISO 8859/1 character set using
345 put these lines in your \&.login file:
349 setenv LESSCHARSET latin1
354 The first line tells \fIless\fR to use 8859/1 definition for determing
355 whether a character is \*(lqnormal\*(rq, \*(lqcontrol\*(lq, or
357 The second line tells \fIless\fR not to warn you if it encounters a
358 file that has non-ASCII characters.
360 simply set the \fBmoreproc\fR profile entry to \fIless\fR,
361 and it will get called automatically.
362 (To handle other single-octet character sets,
363 look at the \fIless\fR\0(1) manual entry for information about the
364 \fBLESSCHARDEF\fR environment variable.)
367 \fImhn\fR will process each message serially\0--\0it won't start showing
368 the next message until all the commands executed to display the
369 current message have terminated.
370 In the case of a multipart content (of any subtype listed above),
371 the content contains advice indicating if the parts should be
372 displayed serially or in parallel.
373 Because this may cause confusion,
374 particularly on uni-window displays,
375 the `\-serialonly' switch can be given to tell \fImhn\fR to never
376 display parts in parallel.
378 .Uh "Storing the Contents"
379 The `\-store' switch tells \fImhn\fR to store the contents of the
380 named messages in \*(lqnative\*(rq (decoded) format.
381 Two things must be determined:
382 the directory to store the content,
384 Files are written in the directory given by the \fBmhn-storage\fR
393 If this entry isn't present,
394 the current working directory is used.
396 \fImhn\fR will look for information in the user's profile to determine
397 how the different contents should be stored.
398 This is achieved through the use of a formatting string,
400 which may contain these escapes:
413 If the content isn't part of a multipart (of any subtype listed above) content,
414 the p-escapes are ignored.
415 Note that if the formatting string starts with a \*(lq+\*(rq character,
416 then these escapes are ignored,
417 and the content is stored in the named folder.
418 (A formatting string consisting solely of a \*(lq+\*(rq character
419 indicates the current folder.)
421 a formatting string consisting solely of a \*(lq-\*(rq character
422 indicates the standard-output.
425 \fImhn\fR will look for an entry of the form:
428 mhn-store-<type>/<subtype>
431 to determine the formatting string.
433 \fImhn\fR will look for an entry of the form:
439 to determine the formatting string.
441 \fImhn\fR will check to see if the content is application/octet-stream
442 with parameter \*(lqtype=tar\*(rq.
444 \fImhn\fR will choose an appropriate filename.
445 If the content is not application/octet-stream,
446 then \fImhn\fR will check to see if the content is a message.
448 \fImhn\fR will use the value \*(lq+\*(rq.
450 \fImhn\fR will use the value \*(lq%m%P.%s\*(rq.
452 Note that if the formatting string starts with a '/',
453 then content will be stored in the full path given
454 (rather than using the value of \fBmhn-storage\fR or the current working
457 if the formatting string starts with a '|',
458 then \fImhn\fR will execute a command which should ultimately store
460 Note that before executing the command,
461 \fImhn\fR will change to the appropriate directory.
462 Also note that if the formatting string starts with a '|',
463 then \fImhn\fR will also honor the a-escape when processing the
467 Example entries might be:
471 mhn-store-text: %m%P.txt
472 mhn-store-audio/basic: | raw2audio -e ulaw -s 8000 -c 1 > %m%P.au
473 mhn-store-application/PostScript: %m%P.ps
478 note that when asked to store a content containing a partial message,
479 \fImhn\fR will try to locate all of the portions and combine them accordingly.
481 if someone's sent you a message in several parts,
482 you might put them all in their own folder and do:
488 This will store exactly one message,
489 containing the sum of the parts.
490 Note that if \fImhn\fR can not locate each part,
491 it will not store anything.
494 if the `\-auto' switch is given and the content contains information
495 indicating the filename the content should be stored as
496 (and if the filename doesn't begin with a '/'),
497 then the filename from the content will be used instead.
499 .Uh "External Access"
500 For contents of type message/external-body,
502 \fImhn\fR supports these access-types:
514 For the \*(lqanon-ftp\*(rq and \*(lqftp\*(rq access types,
515 if your system supports a SOCKETs interface to TCP/IP,
516 then \fImhn\fR will use a built-in FTP client.
518 \fImhn\fR will look for the \fBmhn-access-ftp\fR profile entry,
523 mhn-access-ftp: myftp.sh
526 to determine the pathname of a program to perform the FTP retrieval.
528 This program is invoked with these arguments:
532 domain name of FTP-site
538 \*(lqascii\*(rq or \*(lqbinary\*(rq
542 The program should terminate with a zero-valued exit-status if the
543 retrieval is successful.
545 .Uh "The Content Cache"
546 When \fImhn\fR encounters an external content containing a
547 \*(lqContent-ID:\*(rq field,
548 and if the content allows caching,
549 then depending on the caching behavior of \fImhn\fR,
550 the content might be read from or written to a cache.
552 The caching behavior of \fImhn\fR is controlled with
553 the `\-rcache' and `\-wcache' switches,
554 which define the policy for reading from,
556 the cache, respectively.
557 One of four policies may be specified:
559 indicating that \fImhn\fR should make use of a
560 publically-accessible content cache;
562 indicating that \fImhn\fR should make use of the user's
563 private content cache;
565 indicating that \fImhn\fR should never make use of caching;
568 indicating that \fImhn\fR should ask the user.
570 There are two directories where contents may be cached:
571 the profile entry \fBmhn-cache\fR names a directory containing
572 world-readable contents,
574 the profile entry \fBmhn-private-cache\fR names a directory containing
576 The former should be an absolute (rooted) directory name.
584 might be used if you didn't care that the cache got wiped after each reboot
586 The latter is interpreted relative to the user's MH directory,
592 mhn-private-cache: .cache
595 (which is the default value).
597 .Uh "Caching the Contents"
598 When you encounter a content of type message/external-body with access type
599 \*(lqmail-server\*(rq,
600 \fImhn\fR will ask you if may send a message to a mail-server
601 requesting the content,
608 Retrieve content by asking mail-server@@...
617 Regardless of your decision,
618 \fImhn\fR can't perform any other processing on the content.
621 if \fImhn\fR is allowed to request the content,
622 then when it arrives,
623 there should be a top-level \*(lqContent-ID:\*(rq field which
624 corresponds to the value in the original message/external-body content.
625 You should now use the `-cache' switch to tell \fImhn\fR to enter the
626 arriving content into the content cache,
633 caching message 2 as file ...
637 You can then re-process the original message/external-body content,
638 and \*(lqthe right thing should happen\*(rq,
649 .Uh "Composing the Contents"
650 The \fImhn\fR program can also be used as a simple editor to aid in
651 composing multi-media messages.
652 When invoked by a \fIwhatnow\fR program,
653 \fImhn\fR will expect the body of the draft to be formatted as an
654 \*(lq\fImhn\fR composition file.\*(rq
657 The syntax of this is straight-forward:
661 body ::= 1*(content | EOL)
663 content ::= directive | plaintext
665 directive ::= "#" type "/" subtype
666 0*(";" attribute "=" value)
669 [ "[" description "]" ]
673 | "#@@" type "/" subtype
674 0*(";" attribute "=" value)
677 [ "[" description "]" ]
683 [ "[" description "]" ]
684 [ "+"folder ] [ 0*msg ]
689 [ "[" description "]" ]
697 plaintext ::= [ "Content-Description:"
698 description EOL EOL ]
702 | "#<" type "/" subtype
703 0*(";" attribute "=" value)
705 [ "[" description "]" ]
710 line ::= "##" text EOL
711 -- interpreted as "#"text EOL
717 the body contains one or more contents.
718 A content consists of either a directive,
719 indicated with a \*(lq#\*(rq as the first character of a line;
721 plaintext (one or more lines of text).
722 The continuation character, \*(lq\\\*(lq, may be used to enter a single
724 directive on more than one line,
729 #@@application/octet-stream; \\
731 x-conversions=compress
735 There are four kinds of directives:
736 \*(lqtype\*(rq directives,
737 which name the type and subtype of the content;
738 \*(lqexternal-type\*(rq directives,
739 which also name the type and subtype of the content;
740 the \*(lqforw\*(rq directive,
741 which is used to forward a digest of messages;
743 the \*(lqbegin\*(rq directive,
744 which is used to create a multipart content.
746 For the type directives,
747 the user may optionally specify the name of a file containing the
748 contents in \*(lqnative\*(rq (decoded) format.
749 (If the filename starts with the \*(lq|\*(rq character,
750 then this gives a command whose output is captured accordingly.)
751 If a filename is not given,
752 \fImhn\fR will look for information in the user's profile to determine
753 how the different contents should be composed.
754 This is accomplished by consulting a composition string,
755 and executing it under \fB/bin/sh\fR,
756 with the standard output set to the content.
758 The composition string may contain these escapes:
763 %a additional arguments
764 %f filename containing content
765 %F %f, and stdout is not re-directed
772 \fImhn\fR will look for an entry of the form:
775 mhn-compose-<type>/<subtype>
778 to determine the command to use to compose the content.
780 \fImhn\fR will look for an entry of the form:
786 to determine the composition command.
788 \fImhn\fR will complain.
790 An example entry might be:
793 mhn-compose-audio/basic: record | raw2audio -F
796 Because commands like these will vary,
797 depending on the display environment used for login,
798 composition strings for different contents should probably be put in
799 the file specified by the \fB$MHN\fR environment variable,
800 instead of directly in your user profile.
802 The external-type directives are used to provide a reference to a content,
803 rather than enclosing the contents itself.
805 instead of providing a filename as with the type directives,
806 external-parameters are supplied.
807 These look like regular parameters,
809 so they must be separated accordingly,
814 #@@application/octet-stream; \\
816 x-conversions=compress [] \\
817 access-type=anon-ftp; \\
818 name="mh-mime.tar.Z"; \\
819 directory="mrose/mh-mime"; \\
820 site="ftp.ics.uci.edu"
824 By specifying \*(lq[]\*(rq,
825 an empty description string is given,
826 and the start of the external-parameters is identified.
828 These parameters are of the form:
832 .ta \w'access-type= 'u
833 access-type= usually \fIanon-ftp\fR or \fImail-server\fR
835 permission= read-only or read-write
837 directory= directoryname (optional)
838 mode= usually \fIascii\fR or \fIimage\fR (optional)
839 size= number of octets
841 subject= subject to send
842 body= command to send for retrieval
848 For the forw directive,
849 the user may optionally specify the name of the folder and which
850 messages are to be forwarded.
851 if a folder is not given,
852 it defaults to the current folder.
854 if a message is not given,
855 it defaults to the current message.
857 the forw directive is similar to the \fIforw\fR\0(1) command,
858 except that the former uses the MIME rules for encapsulation
859 rather than those specified in RFC 934.
860 Usage of the `\-rfc934mode' switch indicates whether \fImhn\fR should
861 attempt to utilize the encapsulation rules in such a way as to appear
862 that RFC 934 is being used.
864 then RFC 934-compliant user-agents should be able to burst the message on
865 reception\0--\0providing that the messages being encapsulated do not
866 contain encapsulated messages themselves.
867 The drawback of this approach is that the encapsulations are generated
868 by placing an extra newline at the end of the body of each message.
870 For the begin directive,
871 the user must specify at least one content between
872 the begin and end pairs.
874 For all of these directives,
875 the user may include a brief description of the content between
876 the \*(lq[\*(rq character and the \*(lq]\*(rq character.
878 \fImhn\fR will generate a unique \*(lqContent-ID:\*(rq for each directive;
880 the user may override this by defining the ID using the
881 \*(lq<\*(rq and \*(lq>\*(rq characters.
882 Putting this all together,
884 here is a brief example of what a user's components file might look like:
892 #audio/basic [Flint phone] \\
893 |raw2audio -F < /home/mrose/lib/multi-media/flint.au
894 #image/gif [MTR's photo] \\
895 /home/mrose/lib/multi-media/mrose.gif
900 we'll call this components file \fImhncomps\fR.
903 in addition to directives,
904 plaintext can be present.
905 Plaintext is gathered,
906 until a directive is found or the draft is exhausted,
907 and this is made to form a text content.
908 If the plaintext must contain a \*(lq#\*(rq at the beginning of a line,
914 ##when sent, this line will start with only one #
917 If you want to end the plaintext prior to a directive,
919 to have two plaintext contents adjacent,
920 simply insert a line containing a single \*(lq#\*(rq character,
926 this is the first content
928 and this is the second
933 if the plaintext starts with a line of the form:
936 Content-Description: text
939 then this will be used to describe the plaintext content.
940 \fBNOTE WELL:\fR you must follow this line with a blank line before
944 plaintext is captured as a text/plain content.
945 You can override this by starting the plaintext with \*(lq#<\*(rq
946 followed by a content-type specification,
953 this content will be tagged as text/richtext
955 and this content will be tagged as text/plain
959 Note that if you use the \*(lq#<\*(rq plaintext-form,
960 then the content-description must be on the same line which identifies
961 the content type of the plaintext.
963 If \fImhn\fR is successful,
964 it renames the original draft to start with the \*(lq,\*(rq character
965 and end with the string \*(lq.orig\*(rq,
967 if you are editing the file \*(lqdraft\*(rq,
968 it will be renamed to \*(lq,draft.orig\*(rq.
969 This allows you to easily recover the \fImhn\fR composition file.
971 If the `-check' switch is given,
972 \fImhn\fR will associate an integrity check with each content.
974 .Uh "Automatic Composition"
975 Note that MH will not invoke \fImhn\fR automatically,
976 unless you add this line to your \&.mh\(ruprofile file:
983 you must specifically give the command
989 prior to sending the draft.
991 You can easily tailor MH to help you remember to do this.
993 Suppose you have these lines in your profile:
997 mcomp: -editor mprompter -form mhncomps
998 mprompter: -noprepend -norapid
1003 where \fImcomp\fR is a link to \fIcomp\fR\0(1),
1004 and \fImprompter\fR is a link to \fIprompter\fR\0(1).
1005 Then to send a message using the \fImhncomps\fR components file above,
1012 To: \fBuser@@host\fR
1014 Subject: \fBmulti-media message\fR
1016 #audio/basic [Flint phone] \\
1017 |raw2audio -F < /home/mrose/lib/multi-media/flint.au
1018 #image/gif [MTR's photo] \\
1019 /home/mrose/lib/multi-media/mrose.gif
1021 --------Enter additional text
1023 \fBThis message contains three contents.\fR
1027 What now? \fBedit\fR (this invokes \fImhn\fR)
1029 What now? \fBsend\fR
1033 You have to remember to type the additional edit command,
1034 but it should be fairly obvious from the interaction.
1037 you should consider adding this line to your profile:
1044 if you decide to \fBlist\fR after invoking \fImhn\fR as your editor,
1051 will work as you expect.
1053 .Uh "Sending Files via Mail"
1054 When you want to send a bunch of files to someone,
1055 you can run the \fIviamail\fR shell script,
1056 which is similar the tarmail command:
1059 @@(MHETCPATH)/viamail mailpath \*(lqsubject\*(rq files\0...
1062 \fIviamail\fR will archive the directories/files you name with \fItar\fR\0(1),
1063 and then mail the compressed archive to the `mailpath' with the given
1065 The archive will be automatically split up into as many messages as
1066 necessary in order to get past most mailers.
1068 Sometimes you want \fIviamail\fR to pause after posting a partial message.
1069 This is usually the case when you are running \fIsendmail\fR and
1070 expect to generate a lot of partial messages.
1071 If the first argument given to \fIviamail\fR starts with a dash,
1072 then it is interpreted as the number of seconds to pause in between postings,
1077 @@(MHETCPATH)/viamail -300 mailpath \*(lqsubject\*(rq files\0...
1080 will pause 5 minutes in between each posting.
1082 When these messages are received,
1083 invoke \fImhn\fR once,
1084 with the list of messages,
1085 and the `\-store' command.
1086 The \fImhn\fR program will then store exactly one message containing the
1088 You can then use `\-show' to find out what's inside;
1089 possibly followed by `\-store' to write the archive to a file where you
1091 can subsequently uncompress and untar it, e.g.,
1096 msg part type/subtype size description
1097 1 message/partial 47K part 1 of 4
1098 2 message/partial 47K part 2 of 4
1099 3 message/partial 47K part 3 of 4
1100 4 message/partial 18K part 4 of 4
1102 % mhn -list -verbose last
1103 msg part type/subtype size description
1104 5 application/octet-stream 118K
1105 (extract with uncompress | tar xvpf -)
1107 x-conversions=compress
1109 msg part type/subtype size description
1110 5 application/octet-stream 118K
1111 -- headers of message, followed by \fItar\fR listing appears here
1113 % uncompress < 5.tar.Z | tar xvpf -
1118 by using the `\-auto' switch,
1119 \fImhn\fR will automatically do the extraction for you,
1126 msg part type/subtype size description
1127 1 message/partial 47K part 1 of 4
1128 2 message/partial 47K part 2 of 4
1129 3 message/partial 47K part 3 of 4
1130 4 message/partial 18K part 4 of 4
1132 % mhn -list -verbose last
1133 msg part type/subtype size description
1134 5 application/octet-stream 118K
1135 (extract with uncompress | tar xvpf -)
1137 x-conversions=compress
1139 msg part type/subtype size description
1140 5 application/octet-stream 118K
1141 -- headers of message, followed by \fItar\fR listing appears here
1142 % mhn -store -auto last
1143 -- \fItar\fR listing appears here as files are extracted
1147 As the second \fItar\fR listing is generated,
1148 the files are extracted.
1149 A prudent user will never put `\-auto' in the \&.mh\(ruprofile file.
1150 The correct procedure is to first use `\-show',
1151 to find out what will be extracted.
1152 Then \fImhn\fR can be invoked with `\-store' and `\-auto' to perform
1155 .Uh "User Environment"
1156 Because the display environment in which \fImhn\fR operates may vary
1158 \fImhn\fR will look for the environment variable \fB$MHN\fR.
1160 this specifies the name of an additional user profile which should be read.
1162 when a user logs in on a particular display device,
1163 this environment variable should be set to refer to a file containing
1164 definitions useful for the display device.
1166 only entries of the form
1169 mhn-show-<type>/<subtype>
1176 \fImhn\fR will attempt to consult one other additional user profile,
1181 @@(MHETCPATH)/mhn_defaults
1184 which is created automatically during MH installation.
1186 ^$HOME/\&.mh\(ruprofile~^The user profile
1187 ^$MHN~^Additional profile entries
1188 ^@@(MHETCPATH)/mhn_defaults~^System-default profile entries
1189 ^@@(MHETCPATH)/mhl.headers~^The headers template
1191 ^Path:~^To determine the user's MH directory
1193 ^Current\-Folder:~^To find the default current folder
1195 ^mhlproc:~^Default program to display message headers
1197 ^mhn-access-ftp:~^Program to retrieve contents via FTP
1199 ^mhn-cache~^Public directory to store cached external contents
1201 ^mhn-charset-<charset>~^Template for environment to render character sets
1203 ^mhn-compose-<type>*~^Template for composing contents
1205 ^mhn-private-cache~^Personal directory to store cached external contents
1207 ^mhn-show-<type>*~^Template for displaying contents
1209 ^mhn-storage~^Directory to store contents
1211 ^mhn-store-<type>*~^Template for storing contents
1213 ^moreproc:~^Default program to display text/plain content
1217 \fIMIME: Mechanisms for Specifying and Describing the Format of
1218 Internet Message Bodies\fR
1221 \fIProposed Standard for Message Encapsulation\fR
1224 `+folder' defaults to the current folder
1226 `msgs' defaults to cur
1236 `\-form\0mhl.headers'
1256 If a folder is given,
1257 it will become the current folder.
1258 The last message selected will become the current message.
1260 Partial messages contained within a multipart content are not reassembled
1261 with the `\-store' switch.
1268 @change RFC 1341 -> 1521 (new RFC)
1273 .\" @@(#)$Id: mhn.rf,v 1.12 1993/10/26 16:02:50 jromine Exp jromine $
1276 \%[+folder] \%[msgs]
1291 @update -cache, -rcache, -wcache
1296 .\" @@(#)$Id: mhn.rf,v 1.9 1993/08/20 15:42:08 jromine Exp $
1305 text plain, richtext
1319 .\" @@(#)$Id: mhn.rf,v 1.9 1993/08/20 15:42:08 jromine Exp jromine $
1322 \%[+folder] \%[msgs]
1329 Three action switches direct the operation of \fImhn\fR,
1330 namely `\-list', `\-show', and `\-store'.
1334 If your system supports a SOCKETs interface to TCP/IP,
1338 retrieval is success.
1341 then \fImhn\fR looks for the profile entry \fBmhn-cache\fR to
1342 determine if the content should be read from/written to a cache.
1343 Any content written to the cache will,
1347 use a directory name with the desired read and execute permissions.)
1348 The \fBmhn-cache\fR profile entry names the directory used for caching,
1353 The caching behavior of \fImhn\fR is controlled with the `\-cache' switch.
1354 One of three arguments may be specified:
1355 always, indicating that \fImhn\fR should make use of caching whenever possible;
1356 ask, indicating that \fImhn\fR should ask the user;
1358 never, indicating that \fImhn\fR should never make use of caching.
1365 conversions=x-compress
1368 conversions=x-compress [] \\
1376 conversions=x-compress
1379 conversions=x-compress
1383 ^mhn-cache~^Directory to store cached external contents
1400 a multipart content is always acted upon.
1405 In the case of a multipart content,
1408 If the content isn't part of a multipart content,
1423 .\" @@(#)$Id: mhn.rf,v 1.8 1992/12/10 23:59:10 jromine Exp jromine $
1426 \%[+folder] \%[msgs] \%[\-part\0number]... \%[\-type\0content]...
1438 .\" @@(#)$Id: mhn.rf,v 1.7 1992/11/16 22:31:42 jromine Exp jromine $
1441 \%[\-show\0\%[\-serialonly]\0\%[\-noserialonly]]
1444 \%[\-form\0formfile]] \%[\-noshow]
1447 \%[\-verbose] \%[\-noverbose]
1448 \%[\-rfc934mode] \%[\-norfc934mode]
1449 \%[\-ebcdicsafe] \%[\-noebcdicsafe]
1453 application octet-stream, oda, postscript
1470 @specify only character cell fonts with mhn.
1475 .\" @@(#)$Id: mhn.rf,v 1.6 1992/11/02 16:58:55 jromine Exp jromine $
1478 it checks to see if the environment variable $MM_CHARSET is set,
1479 and that that the value of this environment variable is equal to the value of
1490 .\" @@(#)$Id: mhn.rf,v 1.5 1992/10/26 16:55:42 jromine Exp jromine $
1493 mhn-charset-iso-8859-1: xterm -fn '-*-*-medium-r-normal-*-*-120-*-*-*-*-iso8859-*' -e %s
1499 @add quotes around %f
1504 .\" @@(#)$Id: mhn.rf,v 1.4 1992/10/20 20:30:08 jromine Exp jromine $
1508 Further note that when asked to store a content containing a partial
1509 message, \fImhn\fR will try to locate all of the portions and combine
1515 For contents of type message/external-body,
1516 those with a parameter of \*(lqaccess-type=tftp\*(rq will not be
1517 automatically retrieved.
1519 those with a parameter \*(lqaccess-type=ftp\*(rq or
1520 \*(lqaccess-type=anon-ftp\*(rq will be automatically retrieved
1521 only if your system supports a SOCKETs interface to TCP/IP.
1532 .\" @@(#)$Id: mhn.rf,v 1.3 1992/10/16 17:12:29 jromine Exp jromine $
1535 mhn-show-text/plain: %pmoreproc %F
1536 mhn-show-message/rfc822: %pshow -file %F
1539 mhn-show-image: xv %f
1546 @revisions from mtr -- mime/update9
1551 .\" @@(#)$Id: mhn.rf,v 1.1 1992/01/31 16:26:38 jromine Exp $
1569 Because the display environment in which \fImhn\fR operates may vary
1571 \fImhn\fR will look for the environment variable \fB$MHN\fR.
1573 this specifies the name of an additional user profile which should be read.
1575 when a user logs in on a particular display device,
1576 this environment variable should be set to refer to a file containing
1577 definitions useful for the display device.
1579 only entries of the form
1582 mhn-show-<type>/<subtype>
1589 \fImhn\fR will attempt to consult one other additional user profile,
1593 @@(MHETCPATH)/mhn_defaults
1596 which is created automatically during MH installation.
1610 unless you add this line to your \&.mh\(ruprofile file:
1631 .\" @@(#)$Id: mhn.rf,v 1.1 1992/01/31 16:26:38 jromine Exp jromine $
1634 \%[\-list\0\%[\-header]\0\%[\-noheader]
1637 \%[\-ebcdic] \%[\-noebcdicsafe]
1643 The list of \*(lqstandard\*(rq content types and subtypes can be found
1647 image g3fax, jpeg, gif, x-pbm, x-pgm, x-ppm
1650 and it is desirable to act on a message/external content,
1653 once for message/external and once for the content externally referenced.
1656 The `\-header' switch indicates that a one-line banner should be
1660 For those display string containing the e- or F-escape,
1663 the e-escape has no expansion as far as the shell is concerned..
1667 mhn-show-text/plain: moreproc %F
1668 mhn-show-message/rfc822: show -file %F
1671 mhn-show-application/PostScript: pageview -
1675 the `\-serialonly' switch can be given to tell \fImhn\fR to always
1676 display parts in serial.
1681 which should be created by the system-administrator.
1682 It only makes sense to do this if there is sufficiently homogeneity
1683 among the displays attached to the system.
1686 "#@@" type "/" subtype
1689 [ "alternative" | "parallel" ]
1694 The display string may contain these escapes:
1697 #@@application/octet-stream; type=tar [] access-type=ftp; ...
1701 access-type= usually \fIftp\fR or \fIanon-ftp\fR
1705 expiration= 822-style date
1708 #audio/basic [Flint phone] | raw2audio -F < /home/mrose/flint.au
1709 #image/x-pbm [MTR's photo] /home/mrose/mrose.pbm
1713 Note that MH will not invoke \fImhn\fR automatically.
1714 You must specifically give the command
1718 after you have constructed the \fImhn\fR composition file.
1721 #audio/basic [Flint phone] | raw2audio -F < /home/mrose/flint.au
1722 #image/x-pbm [MTR's photo] /home/mrose/mrose.pbm
1725 conversions=compress
1728 conversions=compress
1731 ^@@(MHETCPATH)/mhn_profile~^System-default profile entries
1735 Internet Message Bodies\fR,
1741 For contents of type message/external,
1742 only those with parameter \*(lqaccess-type=ftp\*(rq or
1745 (and only if your system supports a SOCKETs interface to TCP/IP).
1759 image g3fax, jpeg, gif, pbm, pgm, ppm,
1763 #image/pbm [MTR's photo] /home/mrose/mrose.pbm
1766 #image/pbm [MTR's photo] /home/mrose/mrose.pbm