BSD 4_4_Lite1 development
[unix-history] / usr / src / contrib / mh-6.8.3a / doc / mhn.man
MHN(1) BSD Reference Manual MHN(1)
N\bNA\bAM\bME\bE
mhn - multi-media MH
S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
mhn [[+folder] [msgs] | [-file file]]
[-part number]... [-type content]...
[-list [-headers] [-noheaders]
[-realsize] [-norealsize]] [-nolist]
[-show [-serialonly] [-noserialonly]
[-form formfile] [-pause] [-nopause]]
[-noshow]
[-store [-auto] [-noauto]] [-nostore]
[-cache] [-nocache] [-rcache policy] [-wcache policy]
[-check] [-nocheck]
[-ebcdicsafe] [-noebcdicsafe]
[-rfc934mode] [-norfc934mode]
[-verbose] [-noverbose]
[-help]
D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
The _\bm_\bh_\bn command manipulates multi-media messages as speci-
fied in RFC 1521.
Four action switches direct the operation of _\bm_\bh_\bn, namely
`-list', `-show', `-store', and `-cache'. Any of these
switches may be used concurrently. Normally these action
switches will operate on the content of each of the named
messages. However, by using the `-part' and `-type'
switches, the scope of the operation can be focused on
particular subparts (of a multipart content) and/or par-
ticular content types.
A part specification consists of a series of numbers sepa-
rated by dots. For example, in a multipart content con-
taining three parts, these would be named as 1, 2, and 3,
respectively. If part 2 was also a multipart content con-
taining two parts, these would be named as 2.1 and 2.2,
respectively. Note that the `-part' switch is effective
for only messages containing a multipart content. If a
message has some other kind of content, or if the part is
itself another multipart content, the `-part' switch will
not prevent the content from being acted upon.
A content specification consists of a content type and a
subtype. The initial list of "standard" content types and
[mh.6] MH.6.8 1
MHN(1) BSD Reference Manual MHN(1)
subtypes can be found in RFC 1521. A list of commonly
used contents is briefly reproduced here:
Type Subtypes
---- --------
text plain
multipart mixed, alternative, digest, parallel
message rfc822, partial, external-body
application octet-stream, postscript
image jpeg, gif, x-pbm, x-pgm, x-ppm, x-xwd
audio basic
video mpeg
Subtypes are mandatory.
To specify a content, regardless of its subtype, just use
the name of the content, e.g., "audio". To specify a spe-
cific subtype, separate the two with a slash, e.g.,
"audio/basic". Note that regardless of the values given
to the `-type' switch, a multipart content (of any subtype
listed above) is always acted upon. Further note that if
the `-type' switch is used, and it is desirable to act on
a message/external-body content, then the `-type' switch
must be used twice: once for message/external-body and
once for the content externally referenced.
Each content may optionally have an integrity check asso-
ciated with it. If present and the `-check' switch is
given, then _\bm_\bh_\bn will attempt to verify the integrity of
the content.
The option `-file file' directs _\bm_\bh_\bn to use the specified
file as the source message, rather than a message from a
folder. Note that the file should be a validly formatted
message, just like any other _\bM_\bH message. It should N\bNO\bOT\bT be
in mail drop format (to convert a file in mail drop format
to a folder of _\bM_\bH messages, see _\bi_\bn_\bc (1)).
L\bLi\bis\bst\bti\bin\bng\bg t\bth\bhe\be C\bCo\bon\bnt\bte\ben\bnt\bts\bs
The `-list' switch tells _\bm_\bh_\bn to list the table of contents
associated with the named messages. The `-headers' switch
indicates that a one-line banner should be displayed above
the listing. The `-realsize' switch tells _\bm_\bh_\bn to evaluate
the "native" (decoded) format of each content prior to
listing. This provides an accurate count at the expense
of a small delay.
[mh.6] MH.6.8 2
MHN(1) BSD Reference Manual MHN(1)
S\bSh\bho\bow\bwi\bin\bng\bg t\bth\bhe\be C\bCo\bon\bnt\bte\ben\bnt\bts\bs
The `-show' switch tells _\bm_\bh_\bn to display the contents of
the named messages. The headers of the message are dis-
played with the _\bm_\bh_\bl_\bp_\br_\bo_\bc, using format file _\bm_\bh_\bl_\b._\bh_\be_\ba_\bd_\be_\br_\bs.
(The choice of format file can be overridden by the
`-form formfile' switch.)
_\bm_\bh_\bn will look for information in the user's profile to
determine how the different contents should be displayed.
This is accomplished by consulting a display string, and
executing it under /\b/b\bbi\bin\bn/\b/s\bsh\bh, with the standard input set to
the content. The display string may contain these
escapes:
%a additional arguments
%e exclusive execution
%f filename containing content
%F %e, %f, and stdin is terminal not content
%l display listing prior to displaying content
%p %l, and ask for confirmation
%s subtype
%d content description
For those display strings containing the e- or F-escape,
_\bm_\bh_\bn will execute at most one of these at any given time.
Although the F-escape expands to be the filename contain-
ing the content, the e-escape has no expansion as far as
the shell is concerned.
When the p-escape prompts for confirmation, typing INTR
(usually control-C) will tell _\bm_\bh_\bn not to display that con-
tent. (The p-escape can be disabled by specifying
`-nopause'.) Further, when _\bm_\bh_\bn is display a content, typ-
ing QUIT (usually control-\) will tell _\bm_\bh_\bn to wrap things
up immediately.
Note that if the content being displayed is multipart, but
not one of the subtypes listed above, then the f- and F-
escapes expand to multiple filenames, one for each subor-
dinate content. Further, stdin is not redirected from the
terminal to the content.
First, _\bm_\bh_\bn will look for an entry of the form:
mhn-show-<type>/<subtype>
to determine the command to use to display the content.
If this isn't found, _\bm_\bh_\bn will look for an entry of the
form:
mhn-show-<type>
[mh.6] MH.6.8 3
MHN(1) BSD Reference Manual MHN(1)
to determine the display command. If this isn't found,
_\bm_\bh_\bn has two default values:
mhn-show-text/plain: %pmoreproc '%F'
mhn-show-message/rfc822: %pshow -file '%F'
If neither apply, _\bm_\bh_\bn will check to see if the message has
a application/octet-stream content with parameter
"type=tar". If so, _\bm_\bh_\bn will use an appropriate command.
If not, _\bm_\bh_\bn will complain.
Example entries might be:
mhn-show-audio/basic: raw2audio 2>/dev/null | play
mhn-show-image: xv '%f'
mhn-show-application/PostScript: lpr -Pps
Note that when using the f- or F-escape, it's a good idea
to use single-quotes around the escape. This prevents
misinterpretation by the shell of any funny characters
that might be present in the filename.
Because the text content might be in a non-ASCII character
set, when _\bm_\bh_\bn encounters a "charset" parameter for this
content, it checks to see whether the environment variable
$MM_CHARSET is set and whether the value of this environ-
ment variable is equal to the value of the charset parame-
ter. If not, then _\bm_\bh_\bn will look for an entry of the form:
mhn-charset-<charset>
which should contain a command creating an environment to
render the character set. This command string should con-
taining a single "%s", which will be filled-in with the
command to display the content.
An example entry might be:
mhn-charset-iso-8859-1: xterm -fn '-*-*-medium-r-
normal-*-*-120-*-*-c-*-iso8859-*' -e %s
Note that many pagination programs strip off the high-
order bit. However, newer releases of the _\bl_\be_\bs_\bs program
have modest support for single-octet character sets. The
source to _\bl_\be_\bs_\bs version 177, which has such support, is
found in the MH source tree under m\bmi\bis\bsc\bce\bel\bll\bla\ban\bny\by/\b/l\ble\bes\bss\bs-\b-1\b17\b77\b7. In
order to view messages sent in the ISO 8859/1 character
[mh.6] MH.6.8 4
MHN(1) BSD Reference Manual MHN(1)
set using _\bl_\be_\bs_\bs, put these lines in your .login file:
setenv LESSCHARSET latin1
setenv LESS "-f"
The first line tells _\bl_\be_\bs_\bs to use 8859/1 definition for
determing whether a character is "normal", "control", or
"binary". The second line tells _\bl_\be_\bs_\bs not to warn you if
it encounters a file that has non-ASCII characters. Then,
simply set the m\bmo\bor\bre\bep\bpr\bro\boc\bc profile entry to _\bl_\be_\bs_\bs, and it will
get called automatically. (To handle other single-octet
character sets, look at the _\bl_\be_\bs_\bs (1) manual entry for
information about the L\bLE\bES\bSS\bSC\bCH\bHA\bAR\bRD\bDE\bEF\bF environment variable.)
Finally, _\bm_\bh_\bn will process each message serially -- it
won't start showing the next message until all the com-
mands executed to display the current message have termi-
nated. In the case of a multipart content (of any subtype
listed above), the content contains advice indicating if
the parts should be displayed serially or in parallel.
Because this may cause confusion, particularly on uni-
window displays, the `-serialonly' switch can be given to
tell _\bm_\bh_\bn to never display parts in parallel.
S\bSt\bto\bor\bri\bin\bng\bg t\bth\bhe\be C\bCo\bon\bnt\bte\ben\bnt\bts\bs
The `-store' switch tells _\bm_\bh_\bn to store the contents of the
named messages in "native" (decoded) format. Two things
must be determined: the directory to store the content,
and the filenames. Files are written in the directory
given by the m\bmh\bhn\bn-\b-s\bst\bto\bor\bra\bag\bge\be profile entry, e.g.,
mhn-storage: /tmp
If this entry isn't present, the current working directory
is used.
_\bm_\bh_\bn will look for information in the user's profile to
determine how the different contents should be stored.
[mh.6] MH.6.8 5
MHN(1) BSD Reference Manual MHN(1)
This is achieved through the use of a formatting string,
which may contain these escapes:
%m message number
%P .part
%p part
%s subtype
If the content isn't part of a multipart (of any subtype
listed above) content, the p-escapes are ignored. Note
that if the formatting string starts with a "+" character,
then these escapes are ignored, and the content is stored
in the named folder. (A formatting string consisting
solely of a "+" character indicates the current folder.)
Further, a formatting string consisting solely of a "-"
character indicates the standard-output.
First, _\bm_\bh_\bn will look for an entry of the form:
mhn-store-<type>/<subtype>
to determine the formatting string. If this isn't found,
_\bm_\bh_\bn will look for an entry of the form:
mhn-store-<type>
to determine the formatting string. If this isn't found,
_\bm_\bh_\bn will check to see if the content is application/octet-
stream with parameter "type=tar". If so, _\bm_\bh_\bn will choose
an appropriate filename. If the content is not applica-
tion/octet-stream, then _\bm_\bh_\bn will check to see if the con-
tent is a message. If so, _\bm_\bh_\bn will use the value "+". If
not, _\bm_\bh_\bn will use the value "%m%P.%s".
Note that if the formatting string starts with a '/', then
content will be stored in the full path given (rather than
using the value of m\bmh\bhn\bn-\b-s\bst\bto\bor\bra\bag\bge\be or the current working
directory.) Similarly, if the formatting string starts
with a '|', then _\bm_\bh_\bn will execute a command which should
ultimately store the content. Note that before executing
the command, _\bm_\bh_\bn will change to the appropriate directory.
Also note that if the formatting string starts with a '|',
then _\bm_\bh_\bn will also honor the a-escape when processing the
formatting string.
[mh.6] MH.6.8 6
MHN(1) BSD Reference Manual MHN(1)
Example entries might be:
mhn-store-text: %m%P.txt
mhn-store-audio/basic: | raw2audio -e ulaw -s 8000 -c 1 > %m%P.au
mhn-store-application/PostScript: %m%P.ps
Further, note that when asked to store a content contain-
ing a partial message, _\bm_\bh_\bn will try to locate all of the
portions and combine them accordingly. Thus, if someone's
sent you a message in several parts, you might put them
all in their own folder and do:
mhn all -store
This will store exactly one message, containing the sum of
the parts. Note that if _\bm_\bh_\bn can not locate each part, it
will not store anything.
Finally, if the `-auto' switch is given and the content
contains information indicating the filename the content
should be stored as (and if the filename doesn't begin
with a '/'), then the filename from the content will be
used instead.
E\bEx\bxt\bte\ber\brn\bna\bal\bl A\bAc\bcc\bce\bes\bss\bs
For contents of type message/external-body, _\bm_\bh_\bn supports
these access-types:
afs
anon-ftp
ftp
local-file
mail-server
For the "anon-ftp" and "ftp" access types, if your system
supports a SOCKETs interface to TCP/IP, then _\bm_\bh_\bn will use
a built-in FTP client. Otherwise, _\bm_\bh_\bn will look for the
m\bmh\bhn\bn-\b-a\bac\bcc\bce\bes\bss\bs-\b-f\bft\btp\bp profile entry, e.g.,
mhn-access-ftp: myftp.sh
to determine the pathname of a program to perform the FTP
[mh.6] MH.6.8 7
MHN(1) BSD Reference Manual MHN(1)
retrieval. This program is invoked with these arguments:
domain name of FTP-site
username
password
remote directory
remote filename
local filename
"ascii" or "binary"
The program should terminate with a zero-valued exit-
status if the retrieval is successful.
T\bTh\bhe\be C\bCo\bon\bnt\bte\ben\bnt\bt C\bCa\bac\bch\bhe\be
When _\bm_\bh_\bn encounters an external content containing a "Con-
tent-ID:" field, and if the content allows caching, then
depending on the caching behavior of _\bm_\bh_\bn, the content
might be read from or written to a cache.
The caching behavior of _\bm_\bh_\bn is controlled with the
`-rcache' and `-wcache' switches, which define the policy
for reading from, and writing to, the cache, respectively.
One of four policies may be specified: "public", indicat-
ing that _\bm_\bh_\bn should make use of a publically-accessible
content cache; "private", indicating that _\bm_\bh_\bn should make
use of the user's private content cache; "never", indicat-
ing that _\bm_\bh_\bn should never make use of caching; and, "ask",
indicating that _\bm_\bh_\bn should ask the user.
There are two directories where contents may be cached:
the profile entry m\bmh\bhn\bn-\b-c\bca\bac\bch\bhe\be names a directory containing
world-readable contents, and, the profile entry m\bmh\bhn\bn-\b-
p\bpr\bri\biv\bva\bat\bte\be-\b-c\bca\bac\bch\bhe\be names a directory containing private con-
tents. The former should be an absolute (rooted) direc-
tory name. For example,
mhn-cache: /tmp
might be used if you didn't care that the cache got wiped
after each reboot of the system. The latter is inter-
preted relative to the user's MH directory, if not rooted,
e.g.,
mhn-private-cache: .cache
(which is the default value).
[mh.6] MH.6.8 8
MHN(1) BSD Reference Manual MHN(1)
C\bCa\bac\bch\bhi\bin\bng\bg t\bth\bhe\be C\bCo\bon\bnt\bte\ben\bnt\bts\bs
When you encounter a content of type message/external-body
with access type "mail-server", _\bm_\bh_\bn will ask you if may
send a message to a mail-server requesting the content,
e.g.,
% show 1
Retrieve content by asking mail-server@...
SEND file
? yes
mhn: request sent
Regardless of your decision, _\bm_\bh_\bn can't perform any other
processing on the content.
However, if _\bm_\bh_\bn is allowed to request the content, then
when it arrives, there should be a top-level "Content-ID:"
field which corresponds to the value in the original mes-
sage/external-body content. You should now use the
`-cache' switch to tell _\bm_\bh_\bn to enter the arriving content
into the content cache, e.g.,
% mhn -cache 2
caching message 2 as file ...
You can then re-process the original message/external-body
content, and "the right thing should happen", e.g.,
% show 1
...
C\bCo\bom\bmp\bpo\bos\bsi\bin\bng\bg t\bth\bhe\be C\bCo\bon\bnt\bte\ben\bnt\bts\bs
The _\bm_\bh_\bn program can also be used as a simple editor to aid
in composing multi-media messages. When invoked by a
_\bw_\bh_\ba_\bt_\bn_\bo_\bw program, _\bm_\bh_\bn will expect the body of the draft to
be formatted as an "_\bm_\bh_\bn composition file."
[mh.6] MH.6.8 9
MHN(1) BSD Reference Manual MHN(1)
The syntax of this is straight-forward:
body ::= 1*(content | EOL)
content ::= directive | plaintext
directive ::= "#" type "/" subtype
0*(";" attribute "=" value)
[ "(" comment ")" ]
[ "<" id ">" ]
[ "[" description "]" ]
[ filename ]
EOL
| "#@" type "/" subtype
0*(";" attribute "=" value)
[ "(" comment ")" ]
[ "<" id ">" ]
[ "[" description "]" ]
external-parameters
EOL
| "#forw"
[ "<" id ">" ]
[ "[" description "]" ]
[ "+"folder ] [ 0*msg ]
EOL
| "#begin"
[ "<" id ">" ]
[ "[" description "]" ]
[ "alternative"
| "parallel"
| something-else ]
EOL
1*body
"#end" EOL
plaintext ::= [ "Content-Description:"
description EOL EOL ]
1*line
[ "#" EOL ]
| "#<" type "/" subtype
0*(";" attribute "=" value)
[ "(" comment ")" ]
[ "[" description "]" ]
EOL
1*line
[ "#" EOL ]
[mh.6] MH.6.8 10
MHN(1) BSD Reference Manual MHN(1)
line ::= "##" text EOL
-- interpreted as "#"text EOL
| text EOL
Basically, the body contains one or more contents. A con-
tent consists of either a directive, indicated with a "#"
as the first character of a line; or, plaintext (one or
more lines of text). The continuation character, "\", may
be used to enter a single directive on more than one line,
e.g.,
#@application/octet-stream; \
type=tar; \
x-conversions=compress
There are four kinds of directives: "type" directives,
which name the type and subtype of the content; "external-
type" directives, which also name the type and subtype of
the content; the "forw" directive, which is used to for-
ward a digest of messages; and, the "begin" directive,
which is used to create a multipart content.
For the type directives, the user may optionally specify
the name of a file containing the contents in "native"
(decoded) format. (If the filename starts with the "|"
character, then this gives a command whose output is cap-
tured accordingly.) If a filename is not given, _\bm_\bh_\bn will
look for information in the user's profile to determine
how the different contents should be composed. This is
accomplished by consulting a composition string, and exe-
cuting it under /\b/b\bbi\bin\bn/\b/s\bsh\bh, with the standard output set to
the content. The composition string may contain these
escapes:
%a additional arguments
%f filename containing content
%F %f, and stdout is not re-directed
%s subtype
First, _\bm_\bh_\bn will look for an entry of the form:
mhn-compose-<type>/<subtype>
to determine the command to use to compose the content.
If this isn't found, _\bm_\bh_\bn will look for an entry of the
form:
mhn-compose-<type>
to determine the composition command. If this isn't
found, _\bm_\bh_\bn will complain.
[mh.6] MH.6.8 11
MHN(1) BSD Reference Manual MHN(1)
An example entry might be:
mhn-compose-audio/basic: record | raw2audio -F
Because commands like these will vary, depending on the
display environment used for login, composition strings
for different contents should probably be put in the file
specified by the $\b$M\bMH\bHN\bN environment variable, instead of
directly in your user profile.
The external-type directives are used to provide a refer-
ence to a content, rather than enclosing the contents
itself. Hence, instead of providing a filename as with
the type directives, external-parameters are supplied.
These look like regular parameters, so they must be sepa-
rated accordingly, e.g.,
#@application/octet-stream; \
type=tar; \
x-conversions=compress [] \
access-type=anon-ftp; \
name="mh-mime.tar.Z"; \
directory="mrose/mh-mime"; \
site="ftp.ics.uci.edu"
By specifying "[]", an empty description string is given,
and the start of the external-parameters is identified.
These parameters are of the form:
access-type= usually _\ba_\bn_\bo_\bn_\b-_\bf_\bt_\bp or _\bm_\ba_\bi_\bl_\b-_\bs_\be_\br_\bv_\be_\br
name= filename
permission= read-only or read-write
site= hostname
directory= directoryname (optional)
mode= usually _\ba_\bs_\bc_\bi_\bi or _\bi_\bm_\ba_\bg_\be (optional)
size= number of octets
server= mailbox
subject= subject to send
body= command to send for retrieval
For the forw directive, the user may optionally specify
the name of the folder and which messages are to be for-
warded. if a folder is not given, it defaults to the cur-
rent folder. Similarly, if a message is not given, it
defaults to the current message. Hence, the forw direc-
tive is similar to the _\bf_\bo_\br_\bw (1) command, except that the
former uses the MIME rules for encapsulation rather than
those specified in RFC 934. Usage of the `-rfc934mode'
switch indicates whether _\bm_\bh_\bn should attempt to utilize the
encapsulation rules in such a way as to appear that RFC
[mh.6] MH.6.8 12
MHN(1) BSD Reference Manual MHN(1)
934 is being used. If given, then RFC 934-compliant user-
agents should be able to burst the message on
reception -- providing that the messages being encapsu-
lated do not contain encapsulated messages themselves.
The drawback of this approach is that the encapsulations
are generated by placing an extra newline at the end of
the body of each message.
For the begin directive, the user must specify at least
one content between the begin and end pairs.
For all of these directives, the user may include a brief
description of the content between the "[" character and
the "]" character. By default, _\bm_\bh_\bn will generate a unique
"Content-ID:" for each directive; however, the user may
override this by defining the ID using the "<" and ">"
characters. Putting this all together, here is a brief
example of what a user's components file might look like:
To:
cc:
Subject:
--------
#audio/basic [Flint phone] \
|raw2audio -F < /home/mrose/lib/multi-media/flint.au
#image/gif [MTR's photo] \
/home/mrose/lib/multi-media/mrose.gif
For a later example, we'll call this components file _\bm_\bh_\bn_\b-
_\bc_\bo_\bm_\bp_\bs.
As noted earlier, in addition to directives, plaintext can
be present. Plaintext is gathered, until a directive is
found or the draft is exhausted, and this is made to form
a text content. If the plaintext must contain a "#" at
the beginning of a line, simply double it, e.g.,
##when sent, this line will start with only one #
If you want to end the plaintext prior to a directive,
e.g., to have two plaintext contents adjacent, simply
insert a line containing a single "#" character, e.g.,
this is the first content
#
and this is the second
Finally, if the plaintext starts with a line of the form:
Content-Description: text
[mh.6] MH.6.8 13
MHN(1) BSD Reference Manual MHN(1)
then this will be used to describe the plaintext content.
N\bNO\bOT\bTE\bE W\bWE\bEL\bLL\bL:\b: you must follow this line with a blank line
before starting your text.
By default, plaintext is captured as a text/plain content.
You can override this by starting the plaintext with "#<"
followed by a content-type specification, e.g.,
#<text/richtext
this content will be tagged as text/richtext
#
and this content will be tagged as text/plain
Note that if you use the "#<" plaintext-form, then the
content-description must be on the same line which identi-
fies the content type of the plaintext.
If _\bm_\bh_\bn is successful, it renames the original draft to
start with the "," character and end with the string
".orig", e.g., if you are editing the file "draft", it
will be renamed to ",draft.orig". This allows you to eas-
ily recover the _\bm_\bh_\bn composition file.
If the `-check' switch is given, _\bm_\bh_\bn will associate an
integrity check with each content.
A\bAu\but\bto\bom\bma\bat\bti\bic\bc C\bCo\bom\bmp\bpo\bos\bsi\bit\bti\bio\bon\bn
Note that MH will not invoke _\bm_\bh_\bn automatically, unless you
add this line to your .mh_profile file:
automhnproc: mhn
Otherwise, you must specifically give the command
What now? edit mhn
prior to sending the draft.
You can easily tailor MH to help you remember to do this.
Suppose you have these lines in your profile:
mcomp: -editor mprompter -form mhncomps
mprompter: -noprepend -norapid
mprompter-next: mhn
where _\bm_\bc_\bo_\bm_\bp is a link to _\bc_\bo_\bm_\bp (1), and _\bm_\bp_\br_\bo_\bm_\bp_\bt_\be_\br is a link
to _\bp_\br_\bo_\bm_\bp_\bt_\be_\br (1). Then to send a message using the _\bm_\bh_\bn_\b-
[mh.6] MH.6.8 14
MHN(1) BSD Reference Manual MHN(1)
_\bc_\bo_\bm_\bp_\bs components file above, the sequence is:
% m\bmc\bco\bom\bmp\bp
To: u\bus\bse\ber\br@\b@h\bho\bos\bst\bt
cc:
Subject: m\bmu\bul\blt\bti\bi-\b-m\bme\bed\bdi\bia\ba m\bme\bes\bss\bsa\bag\bge\be
--------
#audio/basic [Flint phone] \
|raw2audio -F < /home/mrose/lib/multi-media/flint.au
#image/gif [MTR's photo] \
/home/mrose/lib/multi-media/mrose.gif
--------Enter additional text
T\bTh\bhi\bis\bs m\bme\bes\bss\bsa\bag\bge\be c\bco\bon\bnt\bta\bai\bin\bns\bs t\bth\bhr\bre\bee\be c\bco\bon\bnt\bte\ben\bnt\bts\bs.\b.
<\b<C\bCT\bTR\bRL\bL-\b-D\bD>\b>
--------
What now? e\bed\bdi\bit\bt (this invokes _\bm_\bh_\bn)
What now? s\bse\ben\bnd\bd
You have to remember to type the additional edit command,
but it should be fairly obvious from the interaction.
Finally, you should consider adding this line to your pro-
file:
lproc: show
This way, if you decide to l\bli\bis\bst\bt after invoking _\bm_\bh_\bn as your
editor, the command
What now? list
will work as you expect.
S\bSe\ben\bnd\bdi\bin\bng\bg F\bFi\bil\ble\bes\bs v\bvi\bia\ba M\bMa\bai\bil\bl
When you want to send a bunch of files to someone, you can
run the _\bv_\bi_\ba_\bm_\ba_\bi_\bl shell script, which is similar the tarmail
command:
/usr/contrib/mh-6.8/lib/viamail mailpath "subject"
files ...
_\bv_\bi_\ba_\bm_\ba_\bi_\bl will archive the directories/files you name with
_\bt_\ba_\br (1), and then mail the compressed archive to the
`mailpath' with the given `subject'. The archive will be
automatically split up into as many messages as necessary
in order to get past most mailers.
[mh.6] MH.6.8 15
MHN(1) BSD Reference Manual MHN(1)
Sometimes you want _\bv_\bi_\ba_\bm_\ba_\bi_\bl to pause after posting a par-
tial message. This is usually the case when you are run-
ning _\bs_\be_\bn_\bd_\bm_\ba_\bi_\bl and expect to generate a lot of partial mes-
sages. If the first argument given to _\bv_\bi_\ba_\bm_\ba_\bi_\bl starts with
a dash, then it is interpreted as the number of seconds to
pause in between postings, e.g.,
/usr/contrib/mh-6.8/lib/viamail -300 mailpath "sub-
ject" files ...
will pause 5 minutes in between each posting.
When these messages are received, invoke _\bm_\bh_\bn once, with
the list of messages, and the `-store' command. The _\bm_\bh_\bn
program will then store exactly one message containing the
archive. You can then use `-show' to find out what's
inside; possibly followed by `-store' to write the
archive to a file where you can subsequently uncompress
and untar it, e.g.,
% mhn -list all
msg part type/subtype size description
1 message/partial 47K part 1 of 4
2 message/partial 47K part 2 of 4
3 message/partial 47K part 3 of 4
4 message/partial 18K part 4 of 4
% mhn -store all
% mhn -list -verbose last
msg part type/subtype size description
5 application/octet-stream 118K
(extract with uncompress | tar xvpf -)
type=tar
x-conversions=compress
% mhn -show last
msg part type/subtype size description
5 application/octet-stream 118K
-- headers of message, followed by _\bt_\ba_\br listing appears here
% mhn -store last
% uncompress < 5.tar.Z | tar xvpf -
Alternately, by using the `-auto' switch, _\bm_\bh_\bn will auto-
[mh.6] MH.6.8 16
MHN(1) BSD Reference Manual MHN(1)
matically do the extraction for you, e.g.,
% mhn -list all
msg part type/subtype size description
1 message/partial 47K part 1 of 4
2 message/partial 47K part 2 of 4
3 message/partial 47K part 3 of 4
4 message/partial 18K part 4 of 4
% mhn -store all
% mhn -list -verbose last
msg part type/subtype size description
5 application/octet-stream 118K
(extract with uncompress | tar xvpf -)
type=tar
x-conversions=compress
% mhn -show last
msg part type/subtype size description
5 application/octet-stream 118K
-- headers of message, followed by _\bt_\ba_\br listing appears here
% mhn -store -auto last
-- _\bt_\ba_\br listing appears here as files are extracted
As the second _\bt_\ba_\br listing is generated, the files are
extracted. A prudent user will never put `-auto' in the
.mh_profile file. The correct procedure is to first use
`-show', to find out what will be extracted. Then _\bm_\bh_\bn can
be invoked with `-store' and `-auto' to perform the
extraction.
U\bUs\bse\ber\br E\bEn\bnv\bvi\bir\bro\bon\bnm\bme\ben\bnt\bt
Because the display environment in which _\bm_\bh_\bn operates may
vary for a user, _\bm_\bh_\bn will look for the environment vari-
able $\b$M\bMH\bHN\bN. If present, this specifies the name of an
additional user profile which should be read. Hence, when
a user logs in on a particular display device, this envi-
ronment variable should be set to refer to a file contain-
ing definitions useful for the display device. Normally,
only entries of the form
mhn-show-<type>/<subtype>
mhn-show-<type>
need be present. Finally, _\bm_\bh_\bn will attempt to consult one
other additional user profile, e.g.,
/usr/contrib/mh-6.8/lib/mhn_defaults
which is created automatically during MH installation.
[mh.6] MH.6.8 17
MHN(1) BSD Reference Manual MHN(1)
F\bFI\bIL\bLE\bES\bS
$HOME/.mh_profile The user profile
$MHN Additional profile entries
/usr/contrib/mh-6.8/lib/mhn_defaults System-default profile entries
/usr/contrib/mh-6.8/lib/mhl.headers The headers template
P\bPR\bRO\bOF\bFI\bIL\bLE\bE C\bCO\bOM\bMP\bPO\bON\bNE\bEN\bNT\bTS\bS
Path: To determine the user's MH directory
Current-Folder: To find the default current folder
mhlproc: Default program to display message headers
mhn-access-ftp: Program to retrieve contents via FTP
mhn-cache Public directory to store cached external contents
mhn-charset-<charset>Template for environment to render character sets
mhn-compose-<type>* Template for composing contents
mhn-private-cache Personal directory to store cached external contents
mhn-show-<type>* Template for displaying contents
mhn-storage Directory to store contents
mhn-store-<type>* Template for storing contents
moreproc: Default program to display text/plain content
S\bSE\bEE\bE A\bAL\bLS\bSO\bO
mhl(1)
_\bM_\bI_\bM_\bE_\b: _\bM_\be_\bc_\bh_\ba_\bn_\bi_\bs_\bm_\bs _\bf_\bo_\br _\bS_\bp_\be_\bc_\bi_\bf_\by_\bi_\bn_\bg _\ba_\bn_\bd _\bD_\be_\bs_\bc_\br_\bi_\bb_\bi_\bn_\bg _\bt_\bh_\be _\bF_\bo_\br_\bm_\ba_\bt
_\bo_\bf _\bI_\bn_\bt_\be_\br_\bn_\be_\bt _\bM_\be_\bs_\bs_\ba_\bg_\be _\bB_\bo_\bd_\bi_\be_\bs (RFC 1521),
_\bP_\br_\bo_\bp_\bo_\bs_\be_\bd _\bS_\bt_\ba_\bn_\bd_\ba_\br_\bd _\bf_\bo_\br _\bM_\be_\bs_\bs_\ba_\bg_\be _\bE_\bn_\bc_\ba_\bp_\bs_\bu_\bl_\ba_\bt_\bi_\bo_\bn (RFC 934).
D\bDE\bEF\bFA\bAU\bUL\bLT\bTS\bS
`+folder' defaults to the current folder
`msgs' defaults to cur
`-noauto'
`-nocache'
`-nocheck'
`-noebcdicsafe'
`-form mhl.headers'
`-headers'
`-pause'
`-rcache ask'
`-realsize'
`-rfc934mode'
`-noserialonly'
`-show'
`-noverbose'
`-wcache ask'
C\bCO\bON\bNT\bTE\bEX\bXT\bT
If a folder is given, it will become the current folder.
The last message selected will become the current message.
B\bBU\bUG\bGS\bS
Partial messages contained within a multipart content are
not reassembled with the `-store' switch.
[mh.6] MH.6.8 18