X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/926ece166ba6ea4bd421c163917172b04b9e3bbb..d231c858d574d37b6cc3d3cef82b06cb04f13b81:/man/mhbuild.man diff --git a/man/mhbuild.man b/man/mhbuild.man index 7024e488..57441dad 100644 --- a/man/mhbuild.man +++ b/man/mhbuild.man @@ -1,23 +1,25 @@ +.TH MHBUILD %manext1% "January 4, 2013" "%nmhversion%" .\" .\" %nmhwarning% -.\" $Id$ .\" -.TH MHBUILD %manext1% "%nmhdate%" MH.6.8 [%nmhversion%] .SH NAME mhbuild \- translate MIME composition draft .SH SYNOPSIS +.na .HP 5 .B mhbuild .I file .RB [ \-list " | " \-nolist ] .RB [ \-realsize " | " \-norealsize ] .RB [ \-headers " | " \-noheaders ] -.RB [ \-ebcdicsafe " | " \-noebcdicsafe ] +.RB [ \-directives " | " \-nodirectives ] .RB [ \-rfc934mode " | " \-norfc934mode ] +.RB [ \-contentid " | " \-nocontentid ] .RB [ \-verbose " | " \-noverbose ] .RB [ \-check " | " \-nocheck ] .RB [ \-version ] .RB [ \-help ] +.ad .SH DESCRIPTION The .B mhbuild @@ -113,12 +115,35 @@ than one line, e.g., .fi .RE .PP -There are four kinds of directives: \*(lqtype\*(rq directives, which +There are five kinds of directives: \*(lqtype\*(rq directives, which name the type and subtype of the content; \*(lqexternal-type\*(rq directives, which also name the type and subtype of the content; the \*(lqmessage\*(rq directive (#forw), which is used to forward one or -more messages; and, the \*(lqbegin\*(rq directive (#begin), which is -used to create a multipart content. +more messages; the \*(lqbegin\*(rq directive (#begin), which is +used to create a multipart content; and the \*(lqon/off/pop\*(rq +directives (#on, #off, #pop) which control whether any other +directives are honored at all. +.PP +The +.B \-directives +switch allows control over whether mhbuild will honor any of the +\*(lq#\*(rq-directives. This can also be affected with the #on or +#off directives, and #pop, which restores the state of processing to +that preceding the most recent #on or #off. (The #on, #off, and #pop +directives are always honored, of course.) This allows inclusion of +plain text which looks like mhbuild directives, without causing +errors: +.PP +.RS 5 +.nf +#off +#include +printf("Hello, World!); +#pop +.fi +.RE +.PP +Currently the stack depth for the #on/off/pop directives is 32. .PP The \*(lqtype\*(rq directive is used to directly specify the type and subtype of a content. You may only specify discrete types in this manner @@ -209,6 +234,7 @@ separated accordingly. For example, type=tar; \\ conversions=compress \\ [this is the nmh distribution] \\ + {application; filename="nmh.tar.gz"} \\ name="nmh.tar.gz"; \\ directory="/pub/nmh"; \\ site="ftp.math.gatech.edu"; \\ @@ -220,7 +246,9 @@ separated accordingly. For example, You must give a description string to separate the content parameters from the external-parameters (although this string may be empty). This description string is specified by enclosing it within -\*(lq[]\*(rq. +\*(lq[]\*(rq. A disposition string, to appear in a +\*(lqContent-Disposition\*(rq header, may appear in the optional +\*(lq{}\*(rq. .PP These parameters are of the form: .PP @@ -308,11 +336,38 @@ character. This description will be copied into the .fi .RE .PP +Similarly, a disposition string may optionally be provided between +\*(lq{\*(rq and \*(lq}\*(rq characters; it will be copied into the +\*(lqContent-Disposition\*(rq header when the directive is processed. +If a disposition string is provided that does not contain a filename +parameter, and a filename is provided in the directive, it will be +added to the \*(lqContent-Disposition\*(rq header. For example, the +following directive: +.PP +.RS 5 +.nf +#text/plain; charset=iso-8859-1 <>{attachment} /tmp/summary.txt +.fi +.RE +.PP +creates these message part headers: +.PP +.RS 5 +.nf +Content-Type: text/plain; charset="iso-8859-1" +Content-Disposition: attachment; filename="summary.txt" +.fi +.RE +.PP By default, .B mhbuild -will generate a unique \*(lqContent-ID:\*(rq for -each directive; however, the user may override this by defining the ID -using the \*(lq<\*(rq and \*(lq>\*(rq characters. +will generate a unique \*(lqContent-ID:\*(rq for each directive, +corresponding to each message part; however, the user may override +this by defining the ID using the \*(lq<\*(rq and \*(lq>\*(rq +characters. The +.B \-nocontentid +switch suppresses creation of all \*(lqContent-ID:\*(rq headers, +even in the top level of the message. .PP In addition to the various directives, plaintext can be present. Plaintext is gathered, until a directive is found or the draft is @@ -408,15 +463,14 @@ This third part will be text/plain .RE .SS "Integrity Check" If -.B Imhbuild +.B mhbuild is given the .B \-check -switch, then it will also associate -an integrity check with each \*(lqleaf\*(rq content. This will add a -Content-MD5 header field to the content, along with the md5 sum of the -unencoded contents. This may be used by the receiver of the message to -verify that the contents of the message were not changed in transport. - +switch, then it will also associate an integrity check with each +\*(lqleaf\*(rq content. This will add a Content-MD5 header field to +the content, along with the md5 sum of the unencoded contents, per RFC +1864. This may be used by the receiver of the message to verify that +the contents of the message were not changed in transport. .SS "Transfer Encodings" After .B mhbuild @@ -435,22 +489,10 @@ will encode each content with a transfer encoding, even it the content contains only 7\-bit data. This is to increase the likelihood that the content is not changed while in transport. -.PP -The switch -.B \-ebcdicsafe -will cause -.B mhbuild -to slightly change -the way in which it performs the \*(lqquoted-printable\*(rq transfer -encoding. Along with encoding 8\-bit characters, it will now also encode -certain common punctuation characters as well. This slightly reduces the -readability of the message, but allows the message to pass more reliably -through mail gateways which involve the EBCDIC character encoding. - .SS "Invoking mhbuild" Typically, .B mhbuild - is invoked by the +is invoked by the .B whatnow program. This command will expect the body of the draft to be formatted as an @@ -506,7 +548,6 @@ What now? list .RE .PP will work as you expect. - .SS "User Environment" Because the environment in which .B mhbuild @@ -531,7 +572,6 @@ user profile, e.g., .RE .PP if it exists. - .SS "Syntax of Composition Files" The following is the formal syntax of a .B mhbuild @@ -548,6 +588,7 @@ directive ::= "#" type "/" subtype [ "(" comment ")" ] [ "<" id ">" ] [ "[" description "]" ] + [ "{" disposition "}" ] [ filename ] EOL @@ -556,18 +597,21 @@ directive ::= "#" type "/" subtype [ "(" comment ")" ] [ "<" id ">" ] [ "[" description "]" ] + [ "{" disposition "}" ] external-parameters EOL | "#forw" [ "<" id ">" ] [ "[" description "]" ] + [ "{" disposition "}" ] [ "+"folder ] [ 0*msg ] EOL | "#begin" [ "<" id ">" ] [ "[" description "]" ] + [ "{" disposition "}" ] [ "alternative" | "parallel" | something-else ] @@ -584,6 +628,7 @@ plaintext ::= [ "Content-Description:" 0*(";" attribute "=" value) [ "(" comment ")" ] [ "[" description "]" ] + [ "{" disposition "}" ] EOL 1*line [ "#" EOL ] @@ -593,16 +638,14 @@ line ::= "##" text EOL | text EOL .fi .RE -.PP - .SH FILES .fc ^ ~ .nf -.ta \w'/usr/local/nmh/etc/ExtraBigFileName 'u +.ta \w'%etcdir%/ExtraBigFileName 'u ^$HOME/\&.mh\(ruprofile~^The user profile ^$MHBUILD~^Additional profile entries ^%etcdir%/mhn.defaults~^System default MIME profile entries - +.fi .SH "PROFILE COMPONENTS" .fc ^ ~ .nf @@ -611,37 +654,38 @@ line ::= "##" text EOL ^Path:~^To determine the user's nmh directory ^Current\-Folder:~^To find the default current folder ^mhbuild-compose-*~^Template for composing contents - +.fi .SH "SEE ALSO" -mhlist(1), mhshow(1), mhstore(1), -.br +.IR mhlist (1), +.IR mhshow (1), +.IR mhstore (1) +.PP .I "Proposed Standard for Message Encapsulation" (RFC\-934), -.br +.PP +.I "The Content-MD5 Header Field" +(RFC\-1864), +.PP .I "Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies" (RFC\-2045), -.br +.PP .I "Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types" (RFC\-2046), -.br +.PP .I "Multipurpose Internet Mail Extensions (MIME) Part Three: Message Header Extensions for Non-ASCII Text" (RFC\-2047), -.br +.PP .I "Multipurpose Internet Mail Extensions (MIME) Part Four: Registration Procedures" (RFC\-2048), -.br +.PP .I "Multipurpose Internet Mail Extensions (MIME) Part Five: Conformance Criteria and Examples" (RFC\-2049) - .SH DEFAULTS .nf .RB ` \-headers ' .RB ` \-realsize ' .RB ` \-norfc934mode ' +.RB ` \-contentid ' .RB ` \-nocheck ' -.RB ` \-noebcdicsafe ' .RB ` \-noverbose ' - -.SH CONTEXT -If a folder is given, it will become the current folder. The last -message selected will become the current message. +.fi