DragonFly On-Line Manual Pages
MH-MIME(7) DragonFly Miscellaneous Information Manual MH-MIME(7)
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 "/usr/local/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/local/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/local/share/doc/nmh/contrib/replyfilter
BUGS
MIME support should be more integrated into all of the nmh tools than
it currently is.
nmh-1.6 March 16, 2014 MH-MIME(7)