|o||decode encoded parts,|
|o||formats the message and text parts into a Postscript document|
|o||insert digest dividers between multipart/digest subparts,|
|o||format message/rfc822 parts as described above for the top-level envelope, and|
|o||submit all other attached documents to be faxed.|
The builtin handling support is as follows: text/plain parts are formatted using the default text font and point size; multipart/mixed are burst and interpreted per the specification but are otherwise unformatted; multipart/digest are burst and an optional digest divider marking may be inserted before each subpart; message/rfc822 are formatted as described above with envelope header lines culled and formatted with bold and italic fonts (in addition, if there is insufficient space in the current output page/column for the message envelope, optional divider, and one line of text, then faxmail will insert a break so the the message starts at the top of the next page/column); application/postscript are copied through untouched to the output; application/x-faxmail-prolog are copied through untouched to the end of the prologue section of the generated PostScript document to permit customization of the formatted output.
faxmail supports the following Content-Transfer-Encoding schemes: 7bit, 8bit, binary, base64, quoted-printable, and x-uuencode. Any character set that is not us-ascii is treated as iso-8859-1.
When faxmail is invoked it delivers the formatted document directly to a HylaFAX server for transmission as facsimile. Command line arguments may be supplied to specify the delivery destination and sender identity; typically from information extracted by the mail transport facility. A command line destination is specified with the same syntax as the argument for the -d option to the sendfax(1) command. Similarly any from identity specified on the command line follows the same rules as the -f option to sendfax. An explicit dialstring to use in delivery can also be specified with an X-FAX-Dialstring header in the mail message envelope. If no sender identity is provided on the command line then faxmail will extract it from the From line in the envelope. faxmail will not submit a message for delivery if either the dialstring or sender identity is missing or null.
X-FAX- header lines may be included in the mail message envelope to control the submission and delivery process. As above these lines are specified as X-FAX-parameter where parameter is the name of a configuration parameter for the sendfax program; e.g. X-FAX-VRes to set the vertical resolution of the transmitted facsimile. By default automatic cover page generation is enabled when direct delivery is used; this can be overridden with the -n option on the command line or by including an X-FAX-AutoCoverPage header in the message envelope.
-1 Set text in one column (default). -2 Set text two columns. -b font Make font, a POSTSCRIPT font name, the bold font used to set header lines. The default bold font is Helvetica-Bold. -c Clip long text lines instead of wrapping them at page margins. -C cover Use the cover page template file specified by cover. -f font Make font, a POSTSCRIPT font name, the text font used to set the body of mail messages. The default text font is Courier. -H height Use height as the height, in inches, of the output page. The default page height is taken from the default page size. -i font Make font, a POSTSCRIPT font name, the italic font used to set header lines. The default italic font is Helvetica-Oblique. -Ml=#,r=#,t=#,b=# Set the page margins; the default margins are: left and right .25 inch, top .35 inch, bottom .25 inch. -n Suppress auto cover page generation. -N Suppress formatting of mail envelope headers. -p size Set all text using size for the font point size. -r Set pages rotated by 90 degrees (in Landscape mode). -R Set pages unrotated (in Portrait mode). -s size Set the page size to use. Cover pages are normally generated using a system-default page size (usually letter-size pages, 8.5" by 11", for sites in North America). Alternate page sizes are specified symbolically using either the name or abbreviation of an entry in the pagesizes(5F) database; e.g. a3 (ISO A3), a4 (ISO A4), a5 (ISO A5), a6 (ISO A6), b4 (ISO B4), na-let (North American Letter), us-leg (American Legal), us-led (American Ledger), us-exe (American Executive), jp-let (Japanese Letter), and jp-leg (Japanese Legal). Comparisons are case-insensitive and any match of a substring of the full page-size name is sufficient; e.g. legal would match American Legal. -t notify Specify the notify value to use -T Trim leading blank lines from text parts. If the text part is completely empty, it will effectively be skipped. -u user Set the user name to use when logging in to do direct delivery. By default the user is specified by the MailUser configuration parameter (see below). If a null user name is specified, then the facsimile will be submitted using the identity of the user that invoked faxmail. -v Enable tracing of envelope, MIME, and job submission processing. Diagnostic information is written to the standard error (envelope and MIME processing) and standard output (job submission). -W width Use width as the width, in inches, of the output page. The default page width is taken from the default page size.
faxmail reads configuration information from the files /usr/local/lib/fax/hyla.conf, /usr/local/lib/fax/sendmail.conf, /usr/local/lib/fax/faxmail.conf, and ~/.hylarc; in that order. Configuration files follow the conventions described in hylafax-client(1). In addition to the formatting configuration parameters below, all of the parameters listed in the sendfax(1) man page apply as well.
The following configuration parameters are recognized to support formatting:
Tag Type Default Description AutoCoverPage boolean Yes automatically generate cover page BoldFont string Helvetica-Bold font for setting header tags Columns integer 1 number of columns in formatted output DigestDivider string - multipart/digest divider POSTSCRIPT command FontPath string see below directory for font metric files GaudyHeaders boolean No enable/disable gaudy page headers Headers string see below headers to retain in envelope ISO8859 boolean Yes use ISO 8859-1 character encoding ItalicFont string Helvetica-Oblique font for setting header values LineWrap boolean Yes wrap/truncate text lines MailUser string - user identity for doing direct delivery MarkDiscarded boolean Yes mark discarded MIME body parts MapHeader string - define header mapping MIMEConverters string see below pathname of MIME converter scripts Orientation string portrait orientation of text on page OutlineMargin inches 0 width of outline line PageCollation string forward collate pages in forward or reverse direction PageHeaders boolean Yes enable/disable page headers PageHeight float - output page height PageMargins string see below margins for formatted page PageSize string default output page size from database PageWidth float - output page width Prologfile string see below pathname of POSTSCRIPT prologue file TabStop integer 8 inter-stop setting in characters TextFont string Courier name of font for setting text TextLineHeight inches - text formatting line height control TextPointSize inches see below size to use in setting text Verbose boolean No trace envelope and MIME processing
Values marked as inches are specified using a syntax that identifies one of several possible units:
#.##bp big point (1in = 72bp) #.##cc cicero (1cc = 12dd) #.##cm centimeter #.##dd didot point (1157dd = 1238pt) #.##in inch #.##mm millimeter (10mm = 1cm) #.##pc pica (1pc = 12pt) #.##pt point (72.27pt = 1in) #.##sp scaled point (65536sp = 1pt)
Unit names can be upper or lower case but no white space is permitted between the number and the unit. Values specified with no unit are interpreted as points.
The configuration parameters are explained below. Most parameters correspond to a command line option. Parameter values identified above as inches are converted according to the conventions described above.
AutoCoverPage Control whether or not a cover page is automatically generated for each job. BoldFont The name of the font to use to set header tags (i.e. the string to the left of the :). Columns The number of columns to set text in. (Equivalent to the -m option.) DigestDivider The string to emit in the output before each subpart of a multipart/digest mail message. This string is typically a POSTSCRIPT procedure that draws a mark of some sort. Dividers are expected to use no more vertical space on the output page than a line of text. FontPath The path where Adobe Font Metric (AFM) files are located; by default /usr/local/lib/afm. GaudyHeaders Control whether or not to use a gaudy-style page header. Enabling gaudy headers implicitly enables page headers. Headers Define the headers retained from the envelope and specify the order that they should be emitted in the formatted output. The set of headers is initialized to To From Subject Cc Date. Headers specified are appended to this list except for a clear header that causes the current set of headers to be discarded. ISO8859 Control the use of ISO 8859-1 encoding in the generated POSTSCRIPT ItalicFont The name of the font to use to set header values (i.e. the string to the right of the :). LineWrap Control whether long text lines are wrapper or truncated at the right hand margin. (Equivalent to the -c option.) MailUser The account name to use to login to a fax server when doing direct delivery. Note that this account name is not used for the identity of the sender; this comes from the command line or the From line in the mail message. If a null account name is specified, then the facsimile will be submitted using the identity of the user that invoked faxmail. MapHeader Define a substitution for the specified header that should be done each time the header is emitted in the formatted envelope. Header tags are matched in a case-insensitive manner. MarkDiscarded Control whether discarded MIME parts are replaced by a text message indicating the original content was removed. MIMEConverters The pathname of a directory hierarchy that has scripts for external processing of MIME body parts. The default pathname is /usr/local/sbin/faxmail. Orientation Control whether pages are oriented horizontally (landscape) or vertically (portrait). (Equivalent to the -r and -R options.) OutlineMargin Control whether columns of text have a line drawn around them and the width of the line. Setting this parameter to 0 disables outlines. PageCollation Control whether the output file has pages collated in the same order as the input file (forward) or in reverse order (reverse). PageHeaders Control whether page headers are generated. PageHeight Set the output page height (in inches). PageMargins Set the output page margins. Margins are specified as string of the form: l=#,r=#,t=#,b=# where l indicates the left margin, r indicates the right margin, t indicates the top margin, b indicates the bottom margin, and numbers are interpreted as inches. (Equivalent to the -M option.) PageSize Set the output page dimensions by name. (Equivalent to the -s option.) PageWidth Set the output page width (in inches). PrologFile The pathname of a file containing POSTSCRIPT that should be included in the prologue section of the generated POSTSCRIPT. The default prologue file is /usr/local/lib/fax/faxmail.ps. TabStop Set the tab stop distance (in characters). TextFont Set the name of font to use for setting text. (Equivalent to the -f option.) TextLineHeight Set the vertical text line height and spacing. TextPointSize Set the point size to use in setting plain text. (Equivalent to the -p option.) Verbose Control tracing envelope and MIME processing.
Because a senders identity in an electronic mail message is inherently untrustworthy, using faxmail to build a mail to fax gateway is problematic. Unless mail service is somehow restricted or the senders identity is verified using a mechanism such as RFC 1847s multipart/signed MIME type there is no reliable way to restrict access to facilities setup with faxmail.
Only the last instance of a header is kept and written to the output. This means, for example, that only the last of many Received lines will be included in the formatted output.
~/.hylarc per-user configuration file /usr/local/lib/fax/pagesizes page size database /usr/local/lib/fax/faxmail.ps POSTSCRIPT prologue /usr/local/lib/fax/hyla.conf system-wide configuration file /usr/local/lib/fax/faxmail.conf system-wide configuration file /usr/local/lib/fax/sendfax.conf system-wide configuration file for direct delivery /usr/local/sbin/faxmail hierarchy for external MIME converters /usr/local/lib/afm for font metrics /var/spool/hylafax/tmp/faxmailXXXXXXtemporary files
|-->||FAXMAIL (1)||July 22, 1996|