Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ mailto(1) — DG/UX R4.11MU05

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

mailx(1)

metamail(1)

mimencode(1)

richtext(1)

getfilename(1)

splitmail(1)

shownonascii(1)

mailcap(4)

terminfo(4)

mime(5)



mailto(1)                      DG/UX R4.11MU05                     mailto(1)


NAME
       mailto - simple multimedia mail sending program

SYNOPSIS
       mailto [-a charset] [-c name] [-r message-id]
                 [-s subject] [recipient-name ...]

DESCRIPTION
       The mailto program is a simple user interface for sending multimedia
       mail in MIME format, the proposed standard format for multimedia
       Internet mail.  It is similar to mailx (heavily modelled on the
       Berkeley mail program).  However, it shares no code with that program
       -- it is a completely new implementation.

       As its name implies, mailto is for sending mail, not for reading it.

       Subsequent sections focus on the enhanced features that make this
       program different than mailx, notably the ability to include rich
       text, multimedia objects, and text in non-ASCII languages such as
       Hebrew or Russian.

OPTIONS
       -a charset    specifies an alternate character set in use.  This must
                     be the one your terminal is actually using.  (Currently
                     it must be in the ISO-8859 character set family.)

       -c name       specifies a name or names for the CC field.  If you
                     want to send multiple copies, you'll need to enclose
                     the list of names in quotation marks, as in -c "name1,
                     name2, name3"

       -r message-id specifies a message to be used in constructing an In-
                     Reply-To header field.  The message-id is a user-
                     supplied string, and if it includes spaces it will need
                     to be enclosed in quotation marks.

       -s subject    specifies the subject for the mail.  If it includes
                     spaces, it will need to be enclosed in quotation marks.

COMPLETE SUMMARY OF TILDE ESCAPES
       Users not familiar with tilde escapes in mailx should read the BASIC
       USE section.  For easy reference, here is a complete summary of the
       tilde escapes in mailto:

              ~?    Show help on tilde escapes
              ~!    Shell escape
              ~~    Enter text line starting with a tilde
              ~.    Send the mail and exit
              ~/    Set maximum size before message is split into multiple
                    parts
              ~?+   Show help on extended (8-bit) characters
              ~>    Indent left margin
              ~<    Unindent left margin
              ~<R   Indent right margin
              ~>R   Unindent right margin
              ~+    Enter 8-bit mode for non-ASCII characters
              ~-    Leave 8-bit mode (return to ASCII)
              ~^    Toggle (right-to-left) mode.
              ~*    Add non-text data (pictures, sounds, etc.) as a new MIME
                    part
              ~b    Toggle bold mode
              ~c    Add to CC list
              ~d    Read from dead.letter (or named file, ~d filename)
              ~e    Edit message being composed
              ~h    Edit the headers
              ~i    Toggle italic mode
              ~j    Alter justification (~jc = center, ~jl = flushleft, ~jr
                    = flushright)
              ~n    Force newline (hard line break)
              ~p    Print out the message so far
              ~q    Quit, copying to dead.letter
              ~Q    Toggle quotation (excerpt) mode
              ~r    Read the named text file into the message
              ~s    Reset the subject
              ~S    Toggle Semitic mode (right-to-left and 8-bit)
              ~t    Add to To list
              ~u    Toggle underline mode
              ~v    Edit using VISUAL editor
              ~w    Write message to named file
              ~z    Add the contents of ~/.signature as a text signature.
              ~Z    Add the contents of ~/.SIGNATURE as a non-text (MIME-
                    format) signature

BASIC USE
       When you type mailto, you are prompted for a list of mail recipients
       (To), a mail subject (Subject) and a list of people (optional) to
       receive a carbon copy of your message (CC).  Alternately, you can
       specify the following on the command line.  The -s option can be used
       to specify the subject, and the -c option can be used to specify the
       carbon copy address.  The -r option can be used to specify the
       contents of the In-Reply-To mail header, e.g.,

            mailto -r "your idea" userA

       will send a message to userA with an In-Reply-To field containing the
       string "your idea".  The -a option is described below, in the
       discussion on non-ASCII languages.  All other command line arguments
       are added to the To list.  Thus the following command sends mail to
       nsb and jxr, with a subject of "Test message" and a carbon copy to
       kraut:

            mailto nsb jxr -s "Test message" -c kraut

       (For the convenience of users accustomed to mail readers in which
       names are separated by commas, you may optionally follow each address
       with a comma, but this is not required.)

       Once mailto is correctly invoked, you may type in the contents of
       your message.  Everything you type will be included in your message
       unless you type a line that begins with the ~ (tilde) character.
       Such a line is known as a "tilde escape" and can be used to give
       special commands to the mailto program.

       When you have finished composing your message, you can cause it to be
       sent to the intended recipients by simply typing the end-of-file
       character, typically Ctrl-D.  Depending on your option settings, you
       may also be able to send the mail by typing .<CR> (dot return) on a
       line, or by typing ~.  (tilde dot).

       Those are the basic requirements for sending mail with mailto.  Other
       tilde escapes are available for additional functionality.  In this
       section, we describe the most basic ones, which the mailto program
       shares with the mailx program.   In subsequent sections, we will
       describe other tilde escapes which are unique to mailto.

       Any line that starts with a tilde is a tilde escape.  The second
       character on the line -- the one that follows the tilde -- is then
       interpreted as a special command by mailto.  The simple tilde escapes
       that mailto and mail have in common include the following:

              ~?    Show help on tilde escapes
              ~!    Shell escape (for example, ~! ls)
              ~~    Enter text line starting with a tilde.  The tilde
                    "quotes" itself, allowing you to input a line of text
                    that starts with a tilde.
              ~.    Send the mail and exit
              ~c    Add to CC list (for example ~c nsb)
              ~d    Read in the contents of ~/dead.letter (or a named file,
                    ~d filename)
              ~e    Edit the message being composed using the editor named
                    by the EDITOR environment variable.
              ~h    Edit the To, Subject, and CC headers
              ~p    Print out the message so far
              ~q    Quit, copying the draft to ~/dead.letter
              ~r    Read the named text file into the message
              ~s    Reset the subject header
              ~t    Add to the To list
              ~v    Edit the message being composed using the editor named
                    by the VISUAL environment variable
              ~w    Write the message being composed to a named file (for
                    example, ~w filename)

       You can manage the behavior of mailto to some extent by putting
       commands in a file in your home directory called .mailrc.  These
       commands include the ability to define aliases for commonly used mail
       addresses.  See the section entitled "Summary of .mailrc
       Functionality" later on this manual page.

ENHANCED FEATURES NOT FOUND IN MAILX
       The main difference between mailx and mailto is that the latter can
       be used to generate enhanced mail in MIME format, the proposed
       standard format for Internet multimedia mail.  Although mailto is
       intended to be a simple multimedia mail generator and cannot perform
       many mail functions, it has the advantages of being simple, of being
       similar to mail, and of being configurable when used with the mailcap
       file mechanism.

       Basically, mailto can include the following in a mail message:


              1. Simple formatted text (text/richtext).
                    The MIME type allows you to add emphasis to your message
                    using underlining, bold text, italic (displayed as
                    reverse video), centering, and the like.

              2. Non-text data (metamail).
                    Metamail can include pictures, sounds, and other non-
                    textual data in the middle of any mail message.  The
                    mailcap configuration mechanism is recommended to make
                    this process user-friendly, although a knowledgeable
                    user can include non-textual data even in the absence of
                    a proper mailcap entry.

              3. Text with non-ASCII characters (such as Hebrew or Russian).
                    Currently, mailto directly supports only the ISO-8859-*
                    family of character sets, which means that it does not
                    meet the needs of Asian users, in particular.  However,
                    languages that cannot be expressed in the ISO-8859
                    family can still be included in the same way non-text
                    data can be included.

       These three mechanisms are discussed in the following sections.

ENRICHED TEXT
       mailto lets you modify the formatting of mail message text in a few
       simple but useful ways.  As with everything else, this can be done
       using simple tilde escapes, as described by the following list:

              ~b    Toggle bold mode (turn bold on or off)
              ~i    Toggle italic mode (turn italic/reverse-video on or off)
              ~j    Alter Justification, in particular:
                    ~jc  Center subsequent text
                    ~jl  Make subsequent text flush-left
                    ~jr  Make subsequent text flush-right
              ~k    Toggles whether or not a "blind" copy of the message
                    will be kept.
              ~n    Force newline (hard line break)
              ~u    Toggle underline mode (turn underline on or off)
              ~>    Indent left margin
              ~<    Unindent left margin
              ~<R   Indent right margin
              ~>R   Unindent right margin
              ~Q    Toggle quotation (excerpt) mode
              ~z    Add the contents of ~/.signature as a text signature

       Bold, italic, and underline are entered in modes that may be toggled
       on and off, so that alternate uses of b, i, and u, respectively, turn
       bold, italic, and underlining on and off.

       Justification, on the other hand, may be switched among the three
       justification modes to format text that is centered, left justified,
       or right justified by using ~j.  Note that rich text is automatically
       justified, so that text lines may be displayed more nicely in
       variable-width windows.  Real line breaks must be indicated by
       entering multiple blank lines, since single line breaks are treated
       as spaces.  The ~n command may be used to force a line break.

       Remember that you can see what your mail message looks like at any
       time using the ~p command.

       Quotation mode, toggled on and off with ~Q, is useful for formatting
       excerpts.  If, for example, you turn on quotation mode, insert a
       file, and then turn off quotation mode, the contents of the file is
       considered to be an excerpt.  In common practice, excerpts are shown
       as indented and/or preceded with > to set them apart from the rest of
       the text.

       Finally, ~z causes a text signature file to be included and formatted
       as a "signature", which many richtext viewers may be configured to
       display in a smaller font or otherwise set off from the rest of the
       message.

MULTIMEDIA OBJECT INCLUSION
       The basic command for inserting multimedia objects in a mailto
       message is ~*.  When you type this command, you are given a list of
       options that vary depending on your configuration.  (How to configure
       this list is described below.)   For example, it might look something
       like this:

       UX:mailto: Please choose which kind of data you wish to insert:

       UX:mailto: 0: A raw file, possibly binary, of no particular data
       type.
       UX:mailto: 1: Raw data from a file, with you specifying the content-
       type by hand.
       2: An audio fragment
       3: An X11 window image dump in GIF format
       4: A reference to data stored in an external location
       5: A Postscript File

       Of these options, only the first two (options 0 and 1) appear at all
       sites and in all configurations.

       If you choose options 0 or 1, you are asked for the name of a file
       containing data you wish to include.  If you choose option 1, you are
       also asked for the correct Content-type name that describes that type
       of data.  The Content-type values are defined by the MIME standard,
       and are typically type/subtype pairs that describe the general data
       type and its specific format.  For example, a picture in GIF format
       has a Content-type of image/gif, and an audio clip in basic u-law
       format has a Content-type of audio/basic.  For option 0, the type
       "application/octet-stream" is used.  For complete documentation on
       the Content-type field, consult the MIME proposed standard, RFC1521.

       More commonly, however, at a site where mail is well-configured you
       will not need to be aware of Content-types, because you will
       automatically choose one of the non-zero options.  In these cases, a
       program will run that will allow you to compose data of the given
       type.  The user interface to this process cannot be described here,
       because it will necessarily be site-dependent, but such programs are
       generally designed to be easy for novice users.

       An extra mailto command that is useful for including multimedia
       objects is the ~Z command.  This can be used to include a multimedia
       signature file.  The signature file should be a complete MIME-format
       file, with a Content-type header field at the top.

CONFIGURATION VIA mailcap FILES
       This section is intended for those who are interested in extending
       the behavior of mailto to easily include new types of mail.  This
       normally is done by the site administrator but may also be done by
       the user who has permission to modify the mailcap file.

       For a more complete explanation of the mailcap mechanism, consult the
       manual page for metamail.  Here we summarize only those aspects of
       mailcap files that are relevant to configuring mailto.

       First, mailto uses a search path to find the mailcap files to
       consult.  Unlike many path searches, mailto will always read all the
       mailcap files on its path.  That is, it will keep reading mailcap
       files until it runs out of them, collecting mailcap entries.

       The default search path is equivalent to
       $HOME/.mailcap:/etc/mail/mailcap:/usr/etc/mailcap:/usr/local/etc/mailcap

       It can be overridden by setting the MAILCAPS environment variable.
       Note that mailto does not actually interpret environment variables
       such as HOME or the ~ syntax in this path search.

       The syntax of a mailcap file is quite simple.  Any line that starts
       with # is a comment.  Blank lines are ignored.  Otherwise, each line
       defines a single mailcap entry for a single Content-type.  Long lines
       may be continued by ending them with a backslash character (\).

       Each individual mailcap entry consists of a Content-type
       specification, a command to be executed on reading, typically by the
       metamail program, and (possibly) a set of optional flag values.  The
       mailto program is only interested in mailcap entries that have either
       or both of the optional compose or composetyped or edit flags.  The
       compose flag is used to tell mailto about a program that can be used
       to compose data in the given format, while the edit flag can be used
       to tell mailto how to edit data in the given format.  Thus, for
       example the following mailcap entry describes how to compose and edit
       audio data:

       audio/basic; showaudio %s; compose=audiocompose %s; edit=audiocompose
       %s; description="An audio clip"

       The composetyped flag is just like compose, except that its output is
       assumed to be in MIME format, including at least a Content-type and,
       if necessary, a content-transfer-encoding header field.  composetyped
       is necessary if variable information needs to be conveyed via
       parameters in the Content-type field (for instance, it is typically
       used with extcompose to create a reference to external data).

       The optional description field is used in composing the prompt that
       mailto prints in response to the ~* command.  The compose program is
       used to compose data in this format, and the edit program is used to
       edit data in this format.  In each of these, any occurrence of %s is
       replaced by the name of the file to be composed or edited.  If there
       is no %s in the compose command, it is equivalent to having > %s
       appended to the end of the compose command.

       Note that the order in which things appear in mailcap files is
       crucial.  The metamail program uses the first matching mailcap entry
       to display data. mailto, on the other hand, offers the user an
       alternative for every mailcap entry that has a compose command.
       However, mailto will use the Content-type from the mailcap entry in
       composing Content-type headers.  Therefore, compose and edit commands
       should not be specified on wildcard mailcap entries.

       If you have a program that can display lots of different subtypes,
       you should probably make a separate entry for displaying and for
       composing the basic types.  For example:

       image/*; showpicture %s

       image/gif; showpicture %s; compose="xwd -frame | xwdtoppm |
       ppmtogif"; description="An X11 window image dump in GIF format"

       image/x-xwd; showpicture %s; compose="xwd -frame"; description="An
       X11 window image dump in XWD format"

       In this example, if you use mailto to compose a gif image, the
       image/gif content type will be used to determine how to compose the
       image (because image/* does not have a field for composing).  If you
       receive a gif image, the image/* content type will be used because
       the wildcard appears in the mailcap file before image/gif.

       For more information on the mailcap file format and syntax, see the
       metamail and mailcap manual pages.


TEXT IN NON-ASCII LANGUAGES
       mailto provides rudimentary support for the composition of mail in
       non-ASCII character sets.  Currently, it supports the ISO-8859 family
       of character sets.  These character sets all have the nice property
       that they are proper supersets of ASCII.  That is, all ASCII
       characters are identical in all of the ISO-8859 character sets.  When
       you use one of these character sets, then, you can still type all
       ASCII characters as normal.

       By default, however, mailto assumes that you are using the US-ASCII
       character set and will not allow the inclusion of non-ASCII
       characters.  To tell mailto that you are using a terminal or terminal
       window that supports one of the ISO-8859 character sets, you can use
       the -a switch or the MMCHARSET environment variable.  For example,
       typing mailto -a ISO-8859-8 tells mailto that your terminal
       understands ISO-8859-8, the ASCII+Hebrew character set.  This is what
       you would use if you were on a terminal that actually understood this
       character set.  If you're using a window system such as X11, you'll
       also need to be sure that your terminal emulator is using the right
       font.  Thus if you have a font named heb6x13, you can start a
       compatible xterm and mailto to send mixed English/Hebrew mail using
       the command:

            xterm -fn heb6x13 -e mailto -a iso-8859-8

       In general, having an installed font with the same name as the
       character set is a good idea, particularly if you're using
       shownonascii.

       Once you've got mailto started up using the right character sets,
       there are two ways to enter non-ASCII characters.  The first, and by
       far the easiest, is to use the keys as marked, if you're on a
       physical terminal that uses one of these character sets.  However, if
       you're using a standard ASCII keyboard, as most X11 users do, you
       need some other way to enter non-ASCII characters.  To permit this,
       mailto has an "8-bit mode."  In 8-bit mode, all printable characters
       that you type have the eighth bit turned on, thus turning them into
       non-ASCII characters.  You can enter 8-bit mode using the tilde
       escape ~+, and you can leave it using ~-.  To see the mapping from
       your keyboard to 8-bit-mode characters, just give the command ~?+.

       Finally, certain languages that can be expressed in the ISO-8859
       family, notably Hebrew and Arabic, go from right to left rather than
       left to right.  To ease the composition of text in these languages,
       mailto has a "right-to-left" mode.  This mode is toggled on or off
       using the ~^ command.  For added convenience, the right-to-left mode
       and 8-bit mode can be toggled on and off together using a single
       command, ~S (Semitic mode).

SUMMARY OF .mailrc FUNCTIONALITY
       The .mailrc file in your home directory can be used to customize the
       mailto program.

       You can use the .mailrc file to set the following variables that
       affect the behavior of mailto.  These variables may be customized by
       using set variablename or unset variablename.

              askcc       controls whether or not you are prompted for a CC
                          list.
              dot         controls whether or not a period alone on a line
                          should be interpreted as terminating your mail
              ignore      controls whether or not interrupts are ignored
              quiet       controls the verbosity of output from mailto.
              keepblind   controls whether or not a "blind" copy of the mail
                          is kept.
              commasonly  controls whether or not a space character is
                          interpreted as separating mail addresses.  By
                          default, for compatibility with BSD mail, space is
                          interpreted in this way, but the commasonly option
                          makes mailto behave more like a modern Internet
                          mailer in this regard.

       The other functionality implemented by the .mailrc file is personal
       mail aliases.  If you have a friend with an especially lengthy mail
       address, you can put a line in your

       alias jdoe Jane.Doe%somewhere-england.uucp@nsf-relay.com

       mailto implements the alias feature in a manner that is compatible
       with mailx.

OTHER KNOWN DIFFERENCES FROM MAILX
       Although this program was modelled on mailx, its user interface is
       inevitably not identical with that program.  What follows is a list
       of major known differences, beyond the multimedia enhancements, that
       might confuse users accustomed to the mailx program:

       Address separators:
                 In mailx, addresses are separated by spaces.  For backward
                 compatibility, this also works in mailto, but commas may
                 also be used instead.

       newline semantics:
                 Unlike mailx, in mailto single line breaks are generally
                 regarded as "soft".  This means that your message may be
                 filled and/or justified when it is seen by the recipient.
                 Explicit line breaks can be added using the ~n command.
                 Multiple consecutive line breaks typed by the user will
                 have the desired effect.  Alternately, any line that starts
                 with a space or tab character is preceded by a line break.

       Inclusion of dead.letter files:
                 The ~d command is used to include the contents of the file
                 dead.letter in the current message.  The mailto
                 implementation of this feature differs from that of mail in
                 two ways: First, the message is included as an encapsulated
                 message rather than as plain text.  While this may
                 sometimes be inconvenient, it allows multimedia dead.letter
                 files to be retrieved properly.   Second, the ~d command in
                 mailto can take an argument, which is the name of a file to
                 use instead of the default ~/dead.letter.

       Potential for failure in ~p:
                 In the standard mailx program, it is inconceivable that ~p
                 would ever fail.  In mailto, ~p works by calling the
                 metamail program.  If metamail is not in the user's search
                 path, ~p will not work.

       Altered editing behavior:
                 The ~e and ~v commands, which are used to edit the message
                 being composed, behave differently in mailto if the mail
                 includes non-text portions.  In such cases, each part is
                 edited separately, in sequence, which makes it impossible
                 for the user to accidentally mess up the inter-part
                 boundaries.  Moreover, if the mailcap entry for a given
                 data type includes an "edit" field, the user is given the
                 choice of editing with the program named there or editing
                 with the usual (text) editor.  In most cases, this is a
                 choice between using a structured editor or editing the raw
                 data stream.

       Altered behavior for large messages:
                 mailto delivers your message using the splitmail program.
                 This is done so that large messages will be split into a
                 set of smaller parts in a MIME-compliant way, so that MIME
                 readers can automatically reassemble them upon receipt.  By
                 default all messages over 100K bytes are split, but this
                 can be controlled using the SPLITSIZE environment variable.
                 See the splitmail manual page for more information.

       New -r command-line option:
                 The -r command-line option is not found in mailx.

ENVIRONMENT VARIABLES
       MAILCAPS      This variable can be used to override the default path
                     search for mailcap files.

       PAGER         If set, this variable overrides "more" as the name of
                     the program to run to paginate output from an
                     interpreter, when pagination has been requested.

       MMCHARSET    This variable can be used instead of the -a switch to
                     tell mailto that your terminal (or terminal emulator)
                     implements a character set other than US-ASCII.

       TERM          This variable tells mailto what your terminal type is.
                     This is used in conjunction with termcap facility to
                     figure out how to do bold characters, reverse video,
                     underlining, or other display features on your
                     terminal.

       EDITOR        This variable names the editor mailto will use when you
                     ask (with ~e) to edit the message you are composing.

       VISUAL        This variable names the visual editor mailto will use
                     when you ask (with ~v) to edit the message you are
                     composing.

SEE ALSO
       mailx(1), metamail(1), mimencode(1), richtext(1), getfilename(1),
       splitmail(1), shownonascii(1), mailcap(4), terminfo(4), mime(5)

NOTICES
       Although this program was modelled on mailx, its  user  interface  is
       not  identical  with that program.  The section entitled "Other Known
       Differences from mailx," above, may be regarded as  an  extension  to
       notices.

       Author is Nathaniel S. Borenstein, Bell Communications Research, Inc.


Licensed material--property of copyright holder(s)

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026