]> diplodocus.org Git - nmh/blobdiff - man/mhbuild.man
no-op to force check the buildbots.
[nmh] / man / mhbuild.man
index abd9dcbca88cb0caeb3fe8c9a08877f38fbe44fb..4b261f33def3d05d61551ca2901f9d8d7ac6d1b4 100644 (file)
@@ -1,4 +1,4 @@
-.TH MHBUILD %manext1% "March 21, 2013" "%nmhversion%"
+.TH MHBUILD %manext1% "March 13, 2014" "%nmhversion%"
 .\"
 .\" %nmhwarning%
 .\"
@@ -17,10 +17,13 @@ mhbuild \- translate MIME composition draft
 .RB [ \-rfc934mode " | " \-norfc934mode ]
 .RB [ \-contentid " | " \-nocontentid ]
 .RB [ \-verbose " | " \-noverbose ]
+.RB [ \-disposition " | " \-nodisposition ]
 .RB [ \-check " | " \-nocheck ]
 .RB [ \-headerencoding 
 .IR encoding\-algorithm
 .RB " | " \-autoheaderencoding ]
+.RB [ \-maxunencoded
+.IR line\-length ]
 .RB [ \-dist ]
 .RB [ \-version ]
 .RB [ \-help ]
@@ -34,7 +37,7 @@ a valid MIME message.
 .B mhbuild
 creates multi-media messages as specified in RFC 2045
 to RFC 2049.  This includes the encoding of message headers as specified
-by RFC 2047.
+by RFC 2047, and the encoding of MIME parameters as specified in RFC 2231.
 .PP
 If you specify the name of the composition file as \*(lq-\*(rq,
 then
@@ -79,6 +82,43 @@ switch
 is present, then the listing will show any \*(lqextra\*(rq information
 that is present in the message, such as comments in the
 \*(lqContent-Type\*(rq header.
+.PP
+If the
+.B \-disposition
+switch is present, then the listing will show any relevant information from
+the \*(lqContent-Disposition\*(rq header.
+.SS "Simplified Attachment Interface"
+For users who wish to simply attach files to text content,
+.B mhbuild
+will scan the composition file for \*(lqAttach\*(rq headers.  An
+\*(lqAttach\*(rq header contains a filename that will be appended to the
+message using normal MIME encapsulation rules.  One filename is allowed
+per \*(lqAttach\*(rq header, but multiple \*(lqAttach\*(rq headers are
+allowed ber composition file.
+.PP
+These files will be appended after any other MIME content, including any
+content specified by
+.B mhbuild
+directives (see below).  See
+.IR send (1)
+for more details.
+.PP
+By default, the Content-Disposition will be \*(lqattachment\*(rq.
+.B mhbuild
+looks for user profile and mhn.defaults entries of the form
+.PP
+.RS 5
+mhbuild-disposition-<type>/<subtype>
+.RE
+or
+.RS 5
+mhbuild-disposition-<type>
+.RE
+.PP
+to supply the disposition value.  The only supported values are
+.I attachment
+and
+.IR inline.
 .SS "Translating the Composition File"
 .B mhbuild
 is essentially a filter to aid in the composition of MIME
@@ -283,7 +323,7 @@ would be as follows:
 .fi
 .RE
 .PP
-Any long URLs will be wrapped according to RFC 2017 rules.
+Any long URLs will be wrapped according to RFC 2231 rules.
 .PP
 The \*(lqmessage\*(rq directive (#forw) is used to specify a message or
 group of messages to include.  You may optionally specify the name of
@@ -386,6 +426,18 @@ characters.  The
 switch suppresses creation of all \*(lqContent-ID:\*(rq headers,
 even in the top level of the message.
 .PP
+Normally
+.B mhbuild
+will choose an appropriate Content\-Transfer\-Encoding based on the content
+and the MIME Content\-Type.  However, you can override that in an
+.B mhbuild
+directive by specifying \*(lq*\*(rq and the encoding.  Acceptable encoding
+values are \*(lq8bit\*(rq, \*(lqqp\*(rq (for quoted\-printable), and
+\*(lqb64\*(rq (for base64 encoding).  It should be noted that undesired
+results may occur if 8bit or quoted\-printable is selected for binary
+content, due to the translation between Unix line endings and the line
+endings use by the mail transport system.
+.PP
 In addition to the various 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
@@ -449,13 +501,22 @@ If a text content contains any 8\-bit characters (characters with the
 high bit set) and the character set is not specified as above, then
 .B mhbuild
 will assume the character set is of the type given by the
-environment variable MM_CHARSET.  If this environment variable is not
+standard
+.IR locale (1)
+environment variables.  If these environment variables are not
 set, then the character set will be labeled as \*(lqx-unknown\*(rq.
 .PP
 If a text content contains only 7\-bit characters and the character set
 is not specified as above, then the character set will be labeled as
 \*(lqus-ascii\*(rq.
 .PP
+By default text content with the high bit set is encoded with a 8bit
+Content\-Transfer\-Encoding.  If the text has lines longer than the value
+of
+.B \-maxunencoded
+(which defaults to 78) then the text is encoded using the quoted\-printable
+encoding.
+.PP
 The
 .B \-headerencoding
 switch will indicate which algorithm to use when encoding any message headers
@@ -554,6 +615,11 @@ on file that already in MIME format.  The
 switch will cause
 .B mhbuild
 to exit without error if the input file already has valid MIME headers.
+The use of
+.B \-auto
+also enables the
+.B \-nodirectives
+switch.
 .PP
 Finally, you should consider adding this line to your profile:
 .PP
@@ -595,15 +661,17 @@ definitions useful for that machine.
 .PP
 Finally,
 .B mhbuild
-will attempt to consult a global
-.B mhbuild
-user profile, e.g.,
+will attempt to consult
 .PP
 .RS 5
-%etcdir%/mhn.defaults
+%nmhetcdir%/mhn.defaults
 .RE
 .PP
 if it exists.
+.PP
+See "Profile Lookup" in
+.IR mh-profile (5)
+for the profile search order, and for how duplicate entries are treated.
 .SS "Syntax of Composition Files"
 The following is the formal syntax of a
 .B mhbuild
@@ -621,6 +689,7 @@ directive    ::=     "#" type "/" subtype
                          [ "<" id ">" ]
                          [ "[" description "]" ]
                          [ "{" disposition "}" ]
+                        [ "*8bit" | "*qp" | "*b64" ]
                          [ filename ]
                          EOL
 
@@ -630,6 +699,7 @@ directive    ::=     "#" type "/" subtype
                          [ "<" id ">" ]
                          [ "[" description "]" ]
                          [ "{" disposition "}" ]
+                        [ "*8bit" | "*qp" | "*b64" ]
                          external-parameters
                          EOL
 
@@ -661,6 +731,7 @@ plaintext    ::=     [ "Content-Description:"
                          [ "(" comment ")" ]
                          [ "[" description "]" ]
                          [ "{" disposition "}" ]
+                        [ "*8bit" | "*qp" | "*b64" ]
                          EOL
                          1*line
                      [ "#" EOL ]
@@ -677,15 +748,15 @@ locations: absolute pathnames are accessed directly, tilde expansion
 is done on usernames, and files are searched for in the user's
 .I Mail
 directory as specified in their profile.  If not found there, the directory
-.RI \*(lq %etcdir% \*(rq
+.RI \*(lq %nmhetcdir% \*(rq
 is checked.
 .PP
 .fc ^ ~
 .nf
-.ta \w'%etcdir%/ExtraBigFileName  'u
+.ta \w'%nmhetcdir%/ExtraBigFileName  'u
 ^$HOME/\&.mh\(ruprofile~^The user profile
 ^$MHBUILD~^Additional profile entries
-^%etcdir%/mhn.defaults~^System default MIME profile entries
+^%nmhetcdir%/mhn.defaults~^System default MIME profile entries
 .fi
 .SH "PROFILE COMPONENTS"
 .fc ^ ~
@@ -720,9 +791,13 @@ is checked.
 (RFC 2048),
 .PP
 .I "Multipurpose Internet Mail Extensions (MIME) Part Five: Conformance Criteria and Examples"
-(RFC 2049)
+(RFC 2049),
+.PP
 .I "Definition of the URL MIME External-Body Access-Type"
-(RFC 2017)
+(RFC 2017),
+.PP
+.I "MIME Parameter Value and Encoded Word Extensions: Character Sets, Languages, and Continuations"
+(RFC 2231)
 .SH DEFAULTS
 .nf
 .RB ` \-headers '
@@ -731,5 +806,7 @@ is checked.
 .RB ` \-contentid '
 .RB ` \-nocheck '
 .RB ` \-noverbose '
+.RB ` \-nodisposition '
 .RB ` \-autoheaderencoding '
+.RB ` "\-maxunencoded\ 78"'
 .fi