MH 6.8 doesn't provide a visual front end for creating MIME messages. This means that you need to type some simple directives into your message draft, which takes a little getting used to if, for example, you've been using NeXTmail.
Mhn can be invoked from the ``What now?'' prompt to create a MIME message:
What now? edit mhnUsing edit mhn invokes the ``compose'' function of mhn.
It's also possible to instruct whatnow (the MH program responsible for handling your ``What now?'' instructions) to invoke mhn automatically, so that you don't need to type edit mhn. To do that, use an entry like this in your .mh_profile:
automhnproc: mhn
When mhn is invoked to compose a MIME message, each # directive in the message draft causes data from a file or from a command to be inserted.
If a file isn't specified with the directive, then a command is used to generate the data. For example, consider this directive:
mhn-compose-audio/basic: recorder '%F' -u -pauseThis example is for HP 9000/710 workstations. Your audio recording command may differ. Refer to appendix
Two escape codes relevant to composition commands are these:
Other escape codes that may be of use are documented in mhn(1).
In an mhn directive in a message draft, an appropriate program invocation (beginning with the pipe symbol, ``|'') in the place of a file name overrides an mhn-compose- profile entry.
Here is a synopsis of the syntax of mhn directives:
body → (content | EOL)+
content → directive | plaintext
directive → # type / subtype
(; attribute = value)*
[ ( comment ) ]
[ [ description ] ]
[ filename ]
EOL
—For files or programs
|
#@ type / subtype
(; attribute = value)*
[ ( comment ) ]
[ [ description ] ]
external-parameters
EOL
—For external body parts
|
#forw
[ [ description ] ]
[ +folder ] [ msg* ]
EOL
— For message digests
|
#begin
[ [ description ] ]
[ alternative | parallel ]
EOL
body+
#end EOL
—For multipart messages
plaintext → [ Content-Description:
description EOL EOL ]
line+
[ # EOL ]
—Describes and encloses a text/plain part
|
#< type / subtype
(; attribute = value)*
[ ( comment ) ]
[ [ description ] ]
EOL
line+
[ # EOL ]
—Encloses plain text representation of data
line → ## text EOL
—Interpreted as #text EOL
|
text EOL
Examples of various forms of mhn directives are scattered
throughout this tutorial, particularly in sections ,
, and appendix
.
Section has a list of required attribute=value pairs to apply to external types.
The MIME specification, RFC 1341, contains more detailed explanations
of required or optional attributes.
Type names and attributes used with mhn directives
correspond to those used in the MIME specification.