NAME¶
mh-mime - Overview of
nmh(7) MIME message composition and display
DESCRIPTION¶
The acronym MIME stands for Multipurpose Internet Mail Extensions, the format of
Internet messages used to send multi-media content. The
nmh command
suite has support for the display and composition of MIME messages, but
currently MIME support is not completely integrated into all tools. This
document provides an overview as to which tools support MIME message display,
storage, and composition.
Local Character Set Conversion¶
All of the
nmh commands convert non-native character sets to the local
character set, as specified by the operating system locale settings. See
locale(1) for more details on the environment variables used to set the
local character set. Character set conversion will only take place if
nmh was built with
iconv(3) support. See the
mhparam(1)
man page for how determine whether your
nmh installation includes
iconv(3) support.
Depending on the source and target character set, it may not be possible to
convert all characters to the local character set. In this case a substitution
character will be used for the characters that cannot be converted.
Message Display¶
The default format used by
scan(1) will automatically decode MIME-encoded
headers. If you have a custom
scan format, see the examples provided
with the
nmh distribution (found in the “
/etc/nmh”
directory) and
mh-format(5) for details on how to make sure your MIME
headers are properly decoded.
By default, if
show detects that it is reading a MIME message it will
invoke
mhshow(1). The default behavior of
mhshow is to only
display text parts that are not marked as attachments. See
mhshow(1)
for details on how to control what
mhshow will display.
Message Interrogation and Storage¶
The
mhlist(1) command will display a listing of the MIME parts contained
within a message. That information can be used in conjunction with the
mhstore command to save individual parts or content types of a message.
See
mhlist(1) and
mhstore(1) for more details on how these
commands work.
Message Composition and Reply¶
All messages sent by
send(1) will automatically be processed by
mhbuild(1) before being passed to
post(1) for message
submission.
Mhbuild will use the locale settings to mark text content
with the appropriate character set and apply any necessary encoding. If you
wish to include text in your message using a character set that does not match
your locale, you will need to specify the character set using a
mhbuild
directive; see
mhbuild(1) for more information.
For attaching files or composing other non-text content, there are two options:
the attach system and
mhbuild directives.
The attach system is best suited for content where one or more files are being
attached to a message. You can use the attach system by either using the
attach command at the “What now?” prompt, or by inserting
an “Attach:” header in the message draft containing the name of
the file you wish to attach to the message (it should be noted all that the
attach command does is place an “Attach” header in the
message draft).
Mhbuild will then automatically include the specified
file(s) in the outgoing message. See
send(1) for details on how
mhbuild determines the proper content type of attached files.
The other method of composing MIME messages is to use
mhbuild directives.
This allows exact control over the contents and format of the MIME message,
but has a more complicated syntax.
mhbuild(1) contains details on the
directive syntax and examples of directives for different media types. It is
important to note that when using
mhbuild directives the user must run
mhbuild outside of
send to have it process directives; when
being run by
send,
mhbuild is configured to not process
directives so normal user text is not mistaken for a directive. When using
directives a user typically uses the
mime command at the “What
now?” prompt to process them.
When replying to messages using
repl(1) the traditional MH method of
including the original text in the reply does not interoperate with MIME
messages. As of this writing there is no native solution for addressing this
issue, but the contrib directory (
/usr/share/doc/nmh/contrib) contains
a Perl program called
replyfilter which will decode text parts and
present them in an appropriate manner to be included in a message reply. See
the comments at the top of
replyfilter for instructions on how to
configure
nmh to work with it.
Message Rewrite¶
The
mhfixmsg(1) command can apply various transformations to MIME
messages, including decoding of text parts, converting the character set of
text parts, and insertion of text/plain parts to correspond to text parts of
other subtypes.
mhfixmsg can also repair defects in MIME messages, such
as mismatched top-level boundary indicators and invalid
Content-Transfer-Encoding values.
SEE ALSO¶
comp(1),
iconv(3),
mh-format(5) mhbuild(1),
mhfixmsg(1),
mhparam(1),
nmh(7),
repl(1),
whatnow(1),
/usr/share/doc/nmh/contrib/replyfilter
BUGS¶
MIME support should be more integrated into all of the
nmh tools than it
currently is.