Provided by: manpages-posix_2.16-1_all bug

NAME

       mailx - process messages

SYNOPSIS

   Send Mode
              mailx [-s subject] address...

   Receive Mode
              mailx -e

              mailx [-HiNn][-F][-u user]

              mailx -f[-HiNn][-F][file]

DESCRIPTION

       The  mailx  utility  provides  a message sending and receiving facility.  It has two major
       modes, selected by the options used: Send Mode and Receive Mode.

       On systems that do not support the User Portability Utilities option, an application using
       mailx shall have the ability to send messages in an unspecified manner (Send Mode). Unless
       the first character of one or more lines is tilde ( '~' ), all  characters  in  the  input
       message  shall  appear in the delivered message, but additional characters may be inserted
       in the message before it is retrieved.

       On systems supporting the User Portability Utilities option,  mail-receiving  capabilities
       and other interactive features, Receive Mode, described below, also shall be enabled.

   Send Mode
       Send  Mode can be used by applications or users to send messages from the text in standard
       input.

   Receive Mode
       Receive Mode is more oriented towards interactive users. Mail can be read and sent in this
       interactive mode.

       When  reading mail, mailx provides commands to facilitate saving, deleting, and responding
       to messages. When sending mail, mailx allows editing, reviewing, and other modification of
       the message as it is entered.

       Incoming  mail  shall  be  stored  in  one  or  more  unspecified locations for each user,
       collectively called the system mailbox for that user. When mailx  is  invoked  in  Receive
       Mode,  the  system  mailbox  shall  be the default place to find new mail. As messages are
       read, they shall be marked to be moved to a secondary file for  storage,  unless  specific
       action  is  taken.  This  secondary file is called the mbox and is normally located in the
       directory referred to by the HOME  environment  variable  (see  MBOX  in  the  ENVIRONMENT
       VARIABLES  section  for  a  description  of this file). Messages shall remain in this file
       until explicitly removed. When the -f option is used to read mail messages from  secondary
       files, messages shall be retained in those files unless specifically removed. All three of
       these locations-system mailbox, mbox, and secondary file-are referred to in  this  section
       as simply "mailboxes", unless more specific identification is required.

OPTIONS

       The  mailx  utility  shall conform to the Base Definitions volume of IEEE Std 1003.1-2001,
       Section 12.2, Utility Syntax Guidelines.

       The following options shall be supported. (Only the -s subject option shall be required on
       all  systems.  The  other  options  are  required  only  on  systems  supporting  the User
       Portability Utilities option.)

       -e     Test for the presence of mail in the system mailbox. The mailx utility shall  write
              nothing and exit with a successful return code if there is mail to read.

       -f     Read  messages  from  the  file  named  by  the  file operand instead of the system
              mailbox. (See also folder.) If no file operand is  specified,  read  messages  from
              mbox instead of the system mailbox.

       -F     Record  the  message  in  a  file  named after the first recipient. The name is the
              login-name portion of the address found first on the To: line in the  mail  header.
              Overrides the record variable, if set (see Internal Variables in mailx .)

       -H     Write a header summary only.

       -i     Ignore interrupts. (See also ignore.)

       -n     Do  not  initialize  from  the  system  default  start-up  file.  See  the EXTENDED
              DESCRIPTION section.

       -N     Do not write an initial header summary.

       -s  subject
              Set the Subject header field to subject. All characters in the subject string shall
              appear  in  the delivered message. The results are unspecified if subject is longer
              than {LINE_MAX} - 10 bytes or contains a <newline>.

       -u  user
              Read the system mailbox of the login name user. This shall only  be  successful  if
              the invoking user has the appropriate privileges to read the system mailbox of that
              user.

OPERANDS

       The following operands shall be supported:

       address
              Addressee of message. When -n is specified and no user start-up files are  accessed
              (see  the  EXTENDED DESCRIPTION section), the user or application shall ensure this
              is an address to pass to the mail delivery system.  Any  system  or  user  start-up
              files  may  enable aliases (see alias under Commands in mailx ) that may modify the
              form of address before it is passed to the mail delivery system.

       file   A pathname of a file to be read instead of the system mailbox when -f is specified.
              The  meaning  of  the file option-argument shall be affected by the contents of the
              folder internal variable; see Internal Variables in mailx .

STDIN

       When mailx is invoked in Send Mode (the first synopsis line), standard input shall be  the
       message  to  be  delivered to the specified addresses. When in Receive Mode, user commands
       shall be accepted from stdin. If the User Portability Utilities option is  not  supported,
       standard input lines beginning with a tilde ( '~' ) character produce unspecified results.

       If  the  User  Portability  Utilities  option  is supported, then in both Send and Receive
       Modes, standard input lines beginning with the escape character (usually tilde  (  '~'  ))
       shall affect processing as described in Command Escapes in mailx .

INPUT FILES

       When  mailx  is used as described by this volume of IEEE Std 1003.1-2001, the file option-
       argument (see the -f option) and the mbox shall be text files  containing  mail  messages,
       formatted  as  described  in the OUTPUT FILES section. The nature of the system mailbox is
       unspecified; it need not be a file.

ENVIRONMENT VARIABLES

       The following environment variables shall affect the execution of mailx:

       DEAD   Determine the pathname of the file in which to save partial  messages  in  case  of
              interrupts  or  delivery  errors. The default shall be dead.letter in the directory
              named by the HOME variable. The behavior of mailx in  saving  partial  messages  is
              unspecified  if  the User Portability Utilities option is not supported and DEAD is
              not defined with the value /dev/null.

       EDITOR Determine the name of a utility to invoke when the edit (see Commands in mailx ) or
              ~e  (see  Command  Escapes  in  mailx  )  command  is  used.  The default editor is
              unspecified.   On XSI-conformant systems it is ed.  The effects  of  this  variable
              are unspecified if the User Portability Utilities option is not supported.

       HOME   Determine the pathname of the user's home directory.

       LANG   Provide  a  default  value for the internationalization variables that are unset or
              null. (See the  Base  Definitions  volume  of  IEEE Std 1003.1-2001,  Section  8.2,
              Internationalization Variables for the precedence of internationalization variables
              used to determine the values of locale categories.)

       LC_ALL If set to  a  non-empty  string  value,  override  the  values  of  all  the  other
              internationalization variables.

       LC_CTYPE
              Determine  the  locale for the interpretation of sequences of bytes of text data as
              characters (for  example,  single-byte  as  opposed  to  multi-byte  characters  in
              arguments and input files) and the handling of case-insensitive address and header-
              field comparisons.

       LC_TIME
              Determine the format and contents of the date and time strings written by mailx.

       LC_MESSAGES
              Determine the locale that should be used to  affect  the  format  and  contents  of
              diagnostic  messages  written to standard error and informative messages written to
              standard output.

       LISTER Determine a string representing the command for writing the contents of the  folder
              directory  to  standard  output  when  the folders command is given (see folders in
              Commands in mailx ). Any string acceptable as a command_string operand to the sh -c
              command  shall  be  valid.  If this variable is null or not set, the output command
              shall be ls.  The effects of this variable are unspecified if the User  Portability
              Utilities option is not supported.

       MAILRC Determine  the  pathname  of the start-up file. The default shall be .mailrc in the
              directory referred to by the HOME environment variable. The behavior  of  mailx  is
              unspecified if the User Portability Utilities option is not supported and MAILRC is
              not defined with the value /dev/null.

       MBOX   Determine a pathname of the file to save messages from the system mailbox that have
              been  read.  The  exit  command  shall  override this function, as shall saving the
              message explicitly in another file. The default shall  be  mbox  in  the  directory
              named  by  the  HOME  variable. The effects of this variable are unspecified if the
              User Portability Utilities option is not supported.

       NLSPATH
              Determine the location of message catalogs for the processing of LC_MESSAGES .

       PAGER  Determine a string representing an  output  filtering  or  pagination  command  for
              writing  the  output  to  the  terminal.  Any string acceptable as a command_string
              operand to the sh -c command shall be valid.  When standard output  is  a  terminal
              device, the message output shall be piped through the command if the mailx internal
              variable crt is set to a value less  the  number  of  lines  in  the  message;  see
              Internal  Variables  in  mailx  .  If  the  PAGER  variable is null or not set, the
              paginator shall be either more or  another  paginator  utility  documented  in  the
              system  documentation.  The  effects  of  this variable are unspecified if the User
              Portability Utilities option is not supported.

       SHELL  Determine the name of a preferred command interpreter. The default shall be sh. The
              effects  of  this variable are unspecified if the User Portability Utilities option
              is not supported.

       TERM   If the internal variable screen  is  not  specified,  determine  the  name  of  the
              terminal  type  to  indicate  in  an  unspecified  manner  the number of lines in a
              screenful of headers. If TERM is not set or is set to null, an unspecified  default
              terminal  type  shall  be  used  and  the  value of a screenful is unspecified. The
              effects of this variable are unspecified if the User Portability  Utilities  option
              is not supported.

       TZ     This  variable  may  determine the timezone used to calculate date and time strings
              written by mailx. If TZ is unset or null, an unspecified default timezone shall  be
              used.

       VISUAL Determine  a  pathname of a utility to invoke when the visual command (see Commands
              in mailx ) or ~v command-escape (see Command Escapes in mailx ) is  used.  If  this
              variable  is  null  or not set, the full-screen editor shall be vi.  The effects of
              this variable are unspecified if the  User  Portability  Utilities  option  is  not
              supported.

ASYNCHRONOUS EVENTS

       When  mailx  is  in  Send  Mode  and  standard  input is not a terminal, it shall take the
       standard action for all signals.

       In Receive Mode, or in Send Mode when standard input is a terminal, if a SIGINT signal  is
       received:

        1. If  in  command  mode,  the  current command, if there is one, shall be aborted, and a
           command-mode prompt shall be written.

        2. If in input mode:

            a. If ignore is set, mailx shall write "@\n" , discard the current  input  line,  and
               continue processing, bypassing the message-abort mechanism described in item 2b.

            b. If  the  interrupt was received while sending mail, either when in Receive Mode or
               in Send Mode, a message shall be written, and another subsequent  interrupt,  with
               no  other  intervening  characters  typed,  shall  be  required  to abort the mail
               message. If in Receive Mode and another  interrupt  is  received,  a  command-mode
               prompt  shall be written. If in Send Mode and another interrupt is received, mailx
               shall terminate with a non-zero status.

           In both cases listed in item b, if the message is not empty:

                  i.   If save is enabled and the file named by DEAD can be created, the  message
                       shall  be  written  to  the  file  named by DEAD . If the file exists, the
                       message shall be written to replace the contents of the file.

                  ii.  If save is not enabled, or the file named by DEAD cannot be  created,  the
                       message shall not be saved.

       The mailx utility shall take the standard action for all other signals.

STDOUT

       In  command  and input modes, all output, including prompts and messages, shall be written
       to standard output.

STDERR

       The standard error shall be used only for diagnostic messages.

OUTPUT FILES

       Various mailx commands and command escapes can create or add to files, including the mbox,
       the  dead-letter  file,  and  secondary mailboxes. When mailx is used as described in this
       volume of IEEE Std 1003.1-2001, these files shall be text  files,  formatted  as  follows:
       line beginning with From<space>
       [one or more header-lines; see Commands in mailx ]
        empty line
        [zero or more body lines
       empty line]
       [line beginning with From<space>...]

       where  each  message begins with the From <space> line shown, preceded by the beginning of
       the file or an empty line. (The From <space> line is considered to be part of the  message
       header,  but not one of the header-lines referred to in Commands in mailx ; thus, it shall
       not be affected by the discard, ignore, or retain commands.) The formats of the  remainder
       of the From <space> line and any additional header lines are unspecified, except that none
       shall be empty. The format of a message body line is also unspecified, except that no line
       following  an  empty line shall start with From <space>; mailx shall modify any such user-
       entered message body lines (following an empty line and beginning with  From  <space>)  by
       adding  one  or  more  characters to precede the 'F' ; it may add these characters to From
       <space> lines that are not preceded by an empty line.

       When a message from the system mailbox or entered by the user is not a text  file,  it  is
       implementation-defined how such a message is stored in files written by mailx.

EXTENDED DESCRIPTION

       The entire EXTENDED DESCRIPTION section shall apply only to implementations supporting the
       User Portability Utilities option.

       The  mailx  utility  cannot  guarantee  support  for  all  character  encodings   in   all
       circumstances.  For  example,  inter-system  mail  may  be restricted to 7-bit data by the
       underlying network, 8-bit data need not be portable to non-internationalized systems,  and
       so  on.  Under  these circumstances, it is recommended that only characters defined in the
       ISO/IEC 646:1991 standard International Reference  Version  (equivalent  to  ASCII)  7-bit
       range of characters be used.

       When  mailx is invoked using one of the Receive Mode synopsis forms, it shall write a page
       of header-summary lines (if -N was not specified  and  there  are  messages,  see  below),
       followed  by  a  prompt indicating that mailx can accept regular commands (see Commands in
       mailx ); this is termed command mode. The page of header-summary lines shall  contain  the
       first  new  message  if  there  are new messages, or the first unread message if there are
       unread messages, or the first message. When mailx is invoked using the Send Mode  synopsis
       and  standard  input is a terminal, if no subject is specified on the command line and the
       asksub variable is set, a prompt for the subject shall be written. At  this  point,  mailx
       shall  be  in  input  mode.  This  input  mode shall also be entered when using one of the
       Receive Mode synopsis forms and a reply or new message is composed using the reply, Reply,
       followup, Followup, or mail commands and standard input is a terminal. When the message is
       typed and the end of the message is encountered, the message shall be passed to  the  mail
       delivery  software.  Commands can be entered by beginning a line with the escape character
       (by default, tilde ( '~' )) followed by a single command letter  and  optional  arguments.
       See Commands in mailx for a summary of these commands. It is unspecified what effect these
       commands will have if standard input is not a terminal when a  message  is  entered  using
       either the Send Mode synopsis, or the Read Mode commands reply, Reply, followup, Followup,
       or mail.

       Note:  For notational convenience, this section uses the default escape character,  tilde,
              in all references and examples.

       At  any  time,  the  behavior  of  mailx  shall  be governed by a set of environmental and
       internal variables. These are flags and valued parameters that can be set and cleared  via
       the mailx set and unset commands.

       Regular commands are of the form:

              [command] [msglist] [argument ...]

       If no command is specified in command mode, next shall be assumed. In input mode, commands
       shall be recognized by the escape character, and lines not treated as  commands  shall  be
       taken as input for the message.

       In command mode, each message shall be assigned a sequential number, starting with 1.

       All  messages  have a state that shall affect how they are displayed in the header summary
       and how they are retained or deleted upon termination of mailx. There is at any  time  the
       notion  of a current message, which shall be marked by a '>' at the beginning of a line in
       the header summary. When mailx is invoked using one of the Receive  Mode  synopsis  forms,
       the  current  message  shall  be  the first new message, if there is a new message, or the
       first unread message if there is an unread message, or the first message if there are  any
       messages,  or unspecified if there are no messages in the mailbox. Each command that takes
       an optional list of messages (msglist) or an optional single message (message) on which to
       operate  shall  leave  the  current  message  set  to  the highest-numbered message of the
       messages specified, unless the command deletes messages, in which case the current message
       shall  be set to the first undeleted message (that is, a message not in the deleted state)
       after the highest-numbered message deleted by the command, if one  exists,  or  the  first
       undeleted  message  before  the  highest-numbered  message  deleted by the command, if one
       exists, or to an unspecified value if there  are  no  remaining  undeleted  messages.  All
       messages shall be in one of the following states:

       new    The message is present in the system mailbox and has not been viewed by the user or
              moved to any other state. Messages in state new when mailx quits shall be  retained
              in the system mailbox.

       unread The  message has been present in the system mailbox for more than one invocation of
              mailx and has not been viewed by the user or moved to any other state. Messages  in
              state unread when mailx quits shall be retained in the system mailbox.

       read   The  message  has  been processed by one of the following commands: ~f, ~m, ~F, ~M,
              copy, mbox, next, pipe, print, Print, top, type, Type, undelete.  The  delete,  dp,
              and  dt commands may also cause the next message to be marked as read, depending on
              the value of the autoprint variable.  Messages that are in the system  mailbox  and
              in  state  read  when  mailx  quits shall be saved in the mbox, unless the internal
              variable hold was set. Messages that are in the mbox or in a secondary mailbox  and
              in state read when mailx quits shall be retained in their current location.

       deleted
              The  message  has  been processed by one of the following commands: delete, dp, dt.
              Messages in state deleted when mailx quits shall be deleted. Deleted messages shall
              be  ignored  until  mailx  quits  or changes mailboxes or they are specified to the
              undelete command; for example, the message specification / string shall only search
              the  subject  lines  of messages that have not yet been deleted, unless the command
              operating on the list of messages  is  undelete.  No  deleted  message  or  deleted
              message header shall be displayed by any mailx command other than undelete.

       preserved
              The message has been processed by a preserve command. When mailx quits, the message
              shall be retained in its current location.

       saved  The message has been processed by one of the following commands: save or write.  If
              the  current  mailbox  is the system mailbox, and the internal variable keepsave is
              set, messages in the state saved shall be saved to the file designated by the  MBOX
              variable  (see  the  ENVIRONMENT VARIABLES section).  If the current mailbox is the
              system mailbox, messages in the state saved  shall  be  deleted  from  the  current
              mailbox, when the quit or file command is used to exit the current mailbox.

       The header-summary line for each message shall indicate the state of the message.

       Many  commands  take  an  optional  list of messages ( msglist) on which to operate, which
       defaults to the current message. A msglist is a list of message  specifications  separated
       by <blank>s, which can include:

       n      Message number n.

       +      The next undeleted message, or the next deleted message for the undelete command.

       -      The  next  previous undeleted message, or the next previous deleted message for the
              undelete command.

       .      The current message.

       ^      The first undeleted message, or the first deleted message for the undelete command.

       $      The last message.

       *      All messages.

       n-m    An inclusive range of message numbers.

       address
              All messages from address; any address as  shown  in  a  header  summary  shall  be
              matchable in this form.

       /string
              All messages with string in the subject line (case ignored).

       :c     All messages of type c, where c shall be one of:

       d
              Deleted messages.

       n
              New messages.

       o
              Old messages (any not in state read or new).

       r
              Read messages.

       u
              Unread messages.

       Other  commands take an optional message ( message) on which to operate, which defaults to
       the current message. All of the forms allowed for msglist are also  allowed  for  message,
       but if more than one message is specified, only the first shall be operated on.

       Other arguments are usually arbitrary strings whose usage depends on the command involved.

   Start-Up in mailx
       At start-up time, mailx shall take the following steps in sequence:

        1. Establish all variables at their stated default values.

        2. Process command line options, overriding corresponding default values.

        3. Import  any of the DEAD , EDITOR , MBOX , LISTER , PAGER , SHELL , or VISUAL variables
           that are present in the environment, overriding the corresponding default values.

        4. Read mailx commands from an unspecified system start-up file, unless the -n option  is
           given, to initialize any internal mailx variables and aliases.

        5. Process the start-up file of mailx commands named in the user MAILRC variable.

       Most  regular mailx commands are valid inside start-up files, the most common use being to
       set up initial display options and alias lists. The following commands shall be invalid in
       the  start-up  file:  !,  edit,  hold,  mail, preserve, reply, Reply, shell, visual, Copy,
       followup, and Followup. Any errors in the  start-up  file  shall  either  cause  mailx  to
       terminate  with  a diagnostic message and a non-zero status or to continue after writing a
       diagnostic message, ignoring the remainder of the lines in the start-up file.

       A blank line in a start-up file shall be ignored.

   Internal Variables in mailx
       The following variables are internal mailx variables. Each internal variable  can  be  set
       via  the  mailx set command at any time. The unset and set no name commands can be used to
       erase variables.

       In the following list, variables shown as:

              variable

       represent Boolean values. Variables shown as:

              variable=value

       shall be assigned string or numeric values. For string values, the rules  in  Commands  in
       mailx concerning filenames and quoting shall also apply.

       The  defaults  specified here may be changed by the implementation-defined system start-up
       file unless the user specifies the -n option.

       allnet All network names whose login name components match shall be treated as  identical.
              This  shall  cause  the  msglist  message  specifications  to behave similarly. The
              default shall be noallnet.  See also the alternates command and the metoo variable.

       append Append messages to the end of the mbox file upon  termination  instead  of  placing
              them  at  the  beginning.  The  default  shall be noappend. This variable shall not
              affect the save command when saving to mbox.

       ask, asksub
              Prompt for a subject line on outgoing mail if one is not specified on  the  command
              line  with  the  -s option. The ask and asksub forms are synonyms; the system shall
              refer to asksub and noasksub in its messages, but shall accept  ask  and  noask  as
              user  input  to  mean asksub and noasksub. It shall not be possible to set both ask
              and noasksub, or noask and asksub.  The default shall be asksub, but  no  prompting
              shall be done if standard input is not a terminal.

       askbcc Prompt for the blind copy list. The default shall be noaskbcc.

       askcc  Prompt for the copy list. The default shall be noaskcc.

       autoprint
              Enable  automatic  writing  of  messages  after  delete  and undelete commands. The
              default shall be noautoprint.

       bang   Enable the special-case treatment of exclamation marks ( '!'  ) in  escape  command
              lines;  see  the escape command and Command Escapes in mailx . The default shall be
              nobang, disabling the expansion of '!' in the command argument to  the  ~!  command
              and the ~<! command escape.

       cmd=command

              Set  the  default  command  to be invoked by the pipe command. The default shall be
              nocmd.

       crt=number
              Pipe messages having more than number lines through the command  specified  by  the
              value  of the PAGER variable. The default shall be nocrt. If it is set to null, the
              value used is implementation-defined.

       debug  Enable verbose diagnostics for debugging. Messages are not delivered.  The  default
              shall be nodebug.

       dot    When  dot is set, a period on a line by itself during message input from a terminal
              shall also signify end-of-file (in addition to  normal  end-of-file).  The  default
              shall  be  nodot.   If  ignoreeof  is  set (see below), a setting of nodot shall be
              ignored and the period is the only method to terminate input mode.

       escape=c
              Set the command escape character to be the character 'c' . By default, the  command
              escape  character shall be tilde. If escape is unset, tilde shall be used; if it is
              set to null, command escaping shall be disabled.

       flipr  Reverse the meanings of the R and r commands. The default shall be noflipr.

       folder=directory

              The default directory for saving mail  files.  User-specified  filenames  beginning
              with  a  plus  sign  (  '+' ) shall be expanded by preceding the filename with this
              directory name to obtain the real pathname. If directory  does  not  start  with  a
              slash  (  '/' ), the contents of HOME shall be prefixed to it. The default shall be
              nofolder. If folder is unset or set to  null,  user-specified  filenames  beginning
              with  '+' shall refer to files in the current directory that begin with the literal
              '+' character. See also outfolder below.  The folder  value  need  not  affect  the
              processing of the files named in MBOX and DEAD .

       header Enable  writing  of  the  header  summary  when entering mailx in Receive Mode. The
              default shall be header.

       hold   Preserve all messages that are read in the system mailbox instead of  putting  them
              in the mbox save file. The default shall be nohold.

       ignore Ignore interrupts while entering messages. The default shall be noignore.

       ignoreeof
              Ignore  normal  end-of-file  during  message input. Input can be terminated only by
              entering a period ( '.' ) on a line by itself or by  the  ~.  command  escape.  The
              default shall be noignoreeof.  See also dot above.

       indentprefix=string

              A  string  that  shall  be added as a prefix to each line that is inserted into the
              message by the ~m command escape. This variable shall default to one <tab>.

       keep   When a system mailbox, secondary mailbox, or mbox is empty,  truncate  it  to  zero
              length instead of removing it. The default shall be nokeep.

       keepsave
              Keep  the messages that have been saved from the system mailbox into other files in
              the file designated by the variable MBOX , instead of deleting  them.  The  default
              shall be nokeepsave.

       metoo  Suppress  the  deletion  of the login name of the user from the recipient list when
              replying to a message or sending to a group.  The default shall be nometoo.

       onehop When responding to a message that was originally sent to  several  recipients,  the
              other  recipient  addresses  are  normally forced to be relative to the originating
              author's  machine  for  the  response.   This  flag  disables  alteration  of   the
              recipients'  addresses,  improving  efficiency  in a network where all machines can
              send directly to all other machines (that is, one hop away). The default  shall  be
              noonehop.

       outfolder
              Cause  the  files  used  to record outgoing messages to be located in the directory
              specified by the folder variable unless the pathname is absolute. The default shall
              be nooutfolder.  See the record variable.

       page   Insert  a  <form-feed> after each message sent through the pipe created by the pipe
              command. The default shall be nopage.

       prompt=string

              Set the command-mode prompt to string. If string is null or if noprompt is set,  no
              prompting shall occur. The default shall be to prompt with the string "? " .

       quiet  Refrain  from  writing  the  opening  message  and version when entering mailx. The
              default shall be noquiet.

       record=file
              Record all outgoing mail in the file with the pathname file.  The default shall  be
              norecord. See also outfolder above.

       save   Enable  saving  of messages in the dead-letter file on interrupt or delivery error.
              See the variable DEAD for the location of the dead-letter file. The  default  shall
              be save.

       screen=number

              Set  the  number of lines in a screenful of headers for the headers and z commands.
              If screen is not specified, a value based on the terminal type  identified  by  the
              TERM  environment  variable, the window size, the baud rate, or some combination of
              these shall be used.

       sendwait
              Wait for the background mailer to finish before returning.  The  default  shall  be
              nosendwait.

       showto When  the  sender  of  the  message  was  the user who is invoking mailx, write the
              information from the To: line instead of the From: line in the header summary.  The
              default shall be noshowto.

       sign=string
              Set  the variable inserted into the text of a message when the ~a command escape is
              given. The default shall be nosign. The character sequences '\t' and '\n' shall  be
              recognized  in the variable as <tab>s and <newline>s, respectively. (See also ~i in
              Command Escapes in mailx .)

       Sign=string
              Set the variable inserted into the text of a message when the ~A command escape  is
              given.  The default shall be noSign. The character sequences '\t' and '\n' shall be
              recognized in the variable as <tab>s and <newline>s, respectively.

       toplines=number

              Set the number of lines of the message to write with the top command.  The  default
              shall be 5.

   Commands in mailx
       The  following  mailx  commands shall be provided. In the following list, header refers to
       lines from the message header, as shown in the OUTPUT FILES section. Header-line refers to
       lines  within  the  header  that  begin  with  one  or  more  non-white-space  characters,
       immediately followed by a colon and  white  space  and  continuing  until  the  next  line
       beginning  with  a  non-white-space character or an empty line. Header-field refers to the
       portion of a header line prior to the first colon in that line.

       For each of the commands listed below, the command can  be  entered  as  the  abbreviation
       (those  characters in the Synopsis command word preceding the '[' ), the full command (all
       characters shown for the command word, omitting the '[' and ']' ), or  any  truncation  of
       the full command down to the abbreviation.  For example, the exit command (shown as ex[it]
       in the Synopsis) can be entered as ex, exi, or exit.

       The arguments to commands can be quoted, using the following methods:

        * An argument can be enclosed between paired double-quotes ( "" ) or single-quotes  (  ''
          );  any  white  space,  shell word expansion, or backslash characters within the quotes
          shall be treated literally as part of the argument. A  double-quote  shall  be  treated
          literally  within  single-quotes and vice versa.  These special properties of the quote
          marks shall occur only when they are paired at the beginning and end of the argument.

        * A backslash outside of the enclosing  quotes  shall  be  discarded  and  the  following
          character treated literally as part of the argument.

        * An unquoted backslash at the end of a command line shall be discarded and the next line
          shall continue the command.

       Filenames, where expected,  shall  be  subjected  to  the  following  transformations,  in
       sequence:

        * If  the  filename begins with an unquoted plus sign, and the folder variable is defined
          (see the folder variable), the plus sign shall be replaced by the value of  the  folder
          variable  followed  by  a slash. If the folder variable is unset or is set to null, the
          filename shall be unchanged.

        * Shell word expansions shall be applied to the filename (see Word Expansions ). If  more
          than  a  single  pathname  results from this expansion and the command is expecting one
          file, the effects are unspecified.

   Declare Aliases
       Synopsis:

              a[lias] [alias [address...]]g[roup] [alias [address...]]

       Add the given addresses to the alias specified by alias. The names  shall  be  substituted
       when  alias  is  used  as a recipient address specified by the user in an outgoing message
       (that is, other recipients addressed indirectly through the reply  command  shall  not  be
       substituted  in  this  manner).  Mail address alias substitution shall apply only when the
       alias string is used as a full address; for example, when hlj is an  alias,  hlj@posix.com
       does not trigger the alias substitution. If no arguments are given, write a listing of the
       current aliases to standard output. If only an alias argument is given, write a listing of
       the  specified alias to standard output. These listings need not reflect the same order of
       addresses that were entered.

   Declare Alternatives
       Synopsis:

              alt[ernates] name...

       (See also the metoo command.) Declare a list of alternative names for  the  user's  login.
       When responding to a message, these names shall be removed from the list of recipients for
       the response.  The comparison of names shall be in  a  case-insensitive  manner.  With  no
       arguments, alternates shall write the current list of alternative names.

   Change Current Directory
       Synopsis:

              cd [directory]ch[dir] [directory]

       Change directory. If directory is not specified, the contents of HOME shall be used.

   Copy Messages
       Synopsis:

              c[opy] [file]c[opy] [msglist] fileC[opy] [msglist]

       Copy  messages  to  the  file  named  by the pathname file without marking the messages as
       saved. Otherwise, it shall be equivalent to the save command.

       In the capitalized form, save the specified messages in a file whose name is derived  from
       the  author  of the message to be saved, without marking the messages as saved. Otherwise,
       it shall be equivalent to the Save command.

   Delete Messages
       Synopsis:

              d[elete] [msglist]

       Mark messages for deletion from the mailbox. The deletions shall  not  occur  until  mailx
       quits  (see  the quit command) or changes mailboxes (see the folder command). If autoprint
       is set and there are messages remaining after the  delete  command,  the  current  message
       shall  be  written  as described for the print command (see the print command); otherwise,
       the mailx prompt shall be written.

   Discard Header Fields
       Synopsis:

              di[scard] [header-field...]ig[nore] [header-field...]

       Suppress the specified header fields when writing messages. Specified header-fields  shall
       be  added to the list of suppressed header fields. Examples of header fields to ignore are
       status and cc. The fields shall be included when the message is saved. The Print and  Type
       commands  shall override this command. The comparison of header fields shall be in a case-
       insensitive manner. If  no  arguments  are  specified,  write  a  list  of  the  currently
       suppressed  header  fields to standard output; the listing need not reflect the same order
       of header fields that were entered.

       If both retain and discard commands are given, discard commands shall be ignored.

   Delete Messages and Display
       Synopsis:

              dp [msglist]dt [msglist]

       Delete the specified messages as  described  for  the  delete  command,  except  that  the
       autoprint  variable shall have no effect, and the current message shall be written only if
       it was set to a message after the last message deleted  by  the  command.   Otherwise,  an
       informational  message  to  the  effect  that there are no further messages in the mailbox
       shall be written, followed by the mailx prompt.

   Echo a String
       Synopsis:

              ec[ho] string ...

       Echo the given strings, equivalent to the shell echo utility.

   Edit Messages
       Synopsis:

              e[dit] [msglist]

       Edit the given messages. The messages shall be placed in a temporary file and the  utility
       named  by the EDITOR variable is invoked to edit each file in sequence. The default EDITOR
       is unspecified.

       The edit command does not modify the contents of those messages in the mailbox.

   Exit
       Synopsis:

              ex[it]x[it]

       Exit from mailx without changing the mailbox. No messages shall be saved in the mbox  (see
       also quit).

   Change Folder
       Synopsis:

              fi[le] [file]fold[er] [file]

       Quit  (see  the quit command) from the current file of messages and read in the file named
       by the pathname file. If no argument is given, the name and status of the current  mailbox
       shall be written.

       Several  unquoted special characters shall be recognized when used as file names, with the
       following substitutions:

       %      The system mailbox for the invoking user.

       %user  The system mailbox for user.

       #      The previous file.

       &      The current mbox.

       +file  The named file in the folder directory. (See the folder variable.)

       The default file shall be the current mailbox.

   Display List of Folders
       Synopsis:

              folders

       Write the names of the files in the directory set by  the  folder  variable.  The  command
       specified  by the LISTER environment variable shall be used (see the ENVIRONMENT VARIABLES
       section).

   Follow Up Specified Messages
       Synopsis:

              fo[llowup] [message]F[ollowup] [msglist]

       In the lowercase form, respond to a message, recording the response in a file  whose  name
       is  derived  from  the  author  of  the  message.  See also the save and copy commands and
       outfolder.

       In the capitalized form, respond to the first message in the msglist, sending the  message
       to  the  author  of  each message in the msglist. The subject line shall be taken from the
       first message and the response shall be recorded in a file whose name is derived from  the
       author of the first message. See also the Save and Copy commands and outfolder.

       Both forms shall override the record variable, if set.

   Display Header Summary for Specified Messages
       Synopsis:

              f[rom] [msglist]

       Write the header summary for the specified messages.

   Display Header Summary
       Synopsis:

              h[eaders] [message]

       Write  the page of headers that includes the message specified. If the message argument is
       not specified, the current message shall not change. However, if the message  argument  is
       specified,  the  current  message  shall become the message that appears at the top of the
       page of headers that includes the message specified. The screen variable sets  the  number
       of headers per page. See also the z command.

   Help
       Synopsis:

              hel[p]?

       Write a summary of commands.

   Hold Messages
       Synopsis:

              ho[ld] [msglist]pre[serve] [msglist]

       Mark  the  messages  in  msglist to be retained in the mailbox when mailx terminates. This
       shall override any commands that might previously have marked the messages to be  deleted.
       During  the  current invocation of mailx, only the delete, dp, or dt commands shall remove
       the preserve marking of a message.

   Execute Commands Conditionally
       Synopsis:

              i[f] s|r
              mail-commands
              el[se]
              mail-commands
              en[dif]

       Execute commands conditionally, where if s executes the following mail-commands, up to  an
       else  or  endif, if the program is in Send Mode, and if r shall cause the mail-commands to
       be executed only in Receive Mode.

   List Available Commands
       Synopsis:

              l[ist]

       Write a list of all commands available. No explanation shall be given.

   Mail a Message
       Synopsis:

              m[ail] address...

       Mail a message to the specified addresses or aliases.

   Direct Messages to mbox
       Synopsis:

              mb[ox] [msglist]

       Arrange for the given messages to end up in the  mbox  save  file  when  mailx  terminates
       normally. See MBOX .  See also the exit and quit commands.

   Process Next Specified Message
       Synopsis:

              n[ext] [message]

       If  the  current  message  has  not been written (for example, by the print command) since
       mailx started or since any other message was the current message, behave as if  the  print
       command  was  entered.  Otherwise,  if  there  is  an  undeleted message after the current
       message, make it the current message and behave as  if  the  print  command  was  entered.
       Otherwise,  an  informational  message to the effect that there are no further messages in
       the mailbox shall be written, followed by the mailx prompt.

   Pipe Message
       Synopsis:

              pi[pe] [[msglist] command]| [[msglist] command]

       Pipe the messages through the given command by invoking the command interpreter  specified
       by  SHELL  with  two  arguments:  -c and command. (See also sh -c.)  The application shall
       ensure that the command is given as a single argument. Quoting, described previously,  can
       be  used to accomplish this. If no arguments are given, the current message shall be piped
       through the command specified by the value of the cmd variable. If the  page  variable  is
       set, a <form-feed> shall be inserted after each message.

   Display Message with Headers
       Synopsis:

              P[rint] [msglist]T[ype] [msglist]

       Write  the  specified  messages,  including all header lines, to standard output. Override
       suppression of lines by the discard, ignore, and retain  commands.  If  crt  is  set,  the
       messages  longer  than  the  number  of lines specified by the crt variable shall be paged
       through the command specified by the PAGER environment variable.

   Display Message
       Synopsis:

              p[rint] [msglist]t[ype] [msglist]

       Write the specified messages to standard output. If crt is set, the messages  longer  than
       the  number  of  lines  specified  by  the crt variable shall be paged through the command
       specified by the PAGER environment variable.

   Quit
       Synopsis:

              q[uit]
              end-of-file

       Terminate mailx, storing messages that were read in mbox (if the current  mailbox  is  the
       system  mailbox and unless hold is set), deleting messages that have been explicitly saved
       (unless keepsave is set), discarding messages that  have  been  deleted,  and  saving  all
       remaining messages in the mailbox.

   Reply to a Message List
       Synopsis:

              R[eply] [msglist]R[espond] [msglist]

       Mail a reply message to the sender of each message in the msglist.  The subject line shall
       be formed by concatenating Re: <space> (unless it already begins with that string) and the
       subject  from  the  first  message.  If record is set to a filename, the response shall be
       saved at the end of that file.

       See also the flipr variable.

   Reply to a Message
       Synopsis:

              r[eply] [message]r[espond] [message]

       Mail a reply message to all recipients included in the header of the message. The  subject
       line  shall  be  formed  by  concatenating Re: <space> (unless it already begins with that
       string) and the subject from the message. If record is set to  a  filename,  the  response
       shall be saved at the end of that file.

       See also the flipr variable.

   Retain Header Fields
       Synopsis:

              ret[ain] [header-field...]

       Retain  the specified header fields when writing messages. This command shall override all
       discard and ignore commands.  The  comparison  of  header  fields  shall  be  in  a  case-
       insensitive  manner. If no arguments are specified, write a list of the currently retained
       header fields to standard output; the listing need not reflect the same  order  of  header
       fields that were entered.

   Save Messages
       Synopsis:

              s[ave] [file]s[ave] [msglist] fileS[ave] [msglist]

       Save  the  specified  messages  in the file named by the pathname file, or the mbox if the
       file argument is omitted. The file shall be created if it does not exist;  otherwise,  the
       messages  shall  be appended to the file. The message shall be put in the state saved, and
       shall behave as specified in the description of the saved state when the  current  mailbox
       is exited by the quit or file command.

       In  the capitalized form, save the specified messages in a file whose name is derived from
       the author of the first message. The name of the file shall be taken to  be  the  author's
       name  with  all network addressing stripped off. See also the Copy, followup, and Followup
       commands and outfolder variable.

   Set Variables
       Synopsis:

              se[t] [name[=[string]] ...] [name=number ...] [noname ...]

       Define one or more variables called name. The variable can be given  a  null,  string,  or
       numeric  value.  Quoting  and backslash escapes can occur anywhere in string, as described
       previously, as if the string portion of the argument were the entire argument.  The  forms
       name  and  name= shall be equivalent to name="" for variables that take string values. The
       set command without arguments shall write a  list  of  all  defined  variables  and  their
       values. The no name form shall be equivalent to unset name.

   Invoke a Shell
       Synopsis:

              sh[ell]

       Invoke an interactive command interpreter (see also SHELL ).

   Display Message Size
       Synopsis:

              si[ze] [msglist]

       Write the size in bytes of each of the specified messages.

   Read mailx Commands From a File
       Synopsis:

              so[urce] file

       Read  and  execute commands from the file named by the pathname file and return to command
       mode.

   Display Beginning of Messages
       Synopsis:

              to[p] [msglist]

       Write the top few lines of each of the specified messages. If  the  toplines  variable  is
       set, it is taken as the number of lines to write. The default shall be 5.

   Touch Messages
       Synopsis:

              tou[ch] [msglist]

       Touch  the  specified  messages. If any message in msglist is not specifically deleted nor
       saved in a file, it shall be placed in the mbox upon  normal  termination.  See  exit  and
       quit.

   Delete Aliases
       Synopsis:

              una[lias] [alias]...

       Delete  the  specified  alias  names. If a specified alias does not exist, the results are
       unspecified.

   Undelete Messages
       Synopsis:

              u[ndelete] [msglist]

       Change the state of the specified messages from deleted to read. If autoprint is set,  the
       last  message of those restored shall be written. If msglist is not specified, the message
       shall be selected as follows:

        * If there are any deleted messages that follow the current message, the first  of  these
          shall be chosen.

        * Otherwise,  the  last  deleted  message that also precedes the current message shall be
          chosen.

   Unset Variables
       Synopsis:

              uns[et] name...

       Cause the specified variables to be erased.

   Edit Message with Full-Screen Editor
       Synopsis:

              v[isual] [msglist]

       Edit the given messages with a screen editor. Each message shall be placed in a  temporary
       file,  and  the utility named by the VISUAL variable shall be invoked to edit each file in
       sequence.  The default editor shall be vi.

       The visual command does not modify the contents of those messages in the mailbox.

   Write Messages to a File
       Synopsis:

              w[rite] [msglist] file

       Write the given messages to the file specified by the pathname  file,  minus  the  message
       header. Otherwise, it shall be equivalent to the save command.

   Scroll Header Display
       Synopsis:

              z[+|-]

       Scroll  the  header  display forward (if '+' is specified or if no option is specified) or
       backward (if '-' is specified) one screenful. The number of headers written shall  be  set
       by the screen variable.

   Invoke Shell Command
       Synopsis:

              !command

       Invoke the command interpreter specified by SHELL with two arguments: -c and command. (See
       also sh -c.) If the bang variable is set, each unescaped  occurrence  of  '!'  in  command
       shall  be  replaced  with  the  command  executed  by the previous ! command or ~! command
       escape.

   Null Command
       Synopsis:

              # comment

       This null command (comment) shall be ignored by mailx.

   Display Current Message Number
       Synopsis:

              =

       Write the current message number.

   Command Escapes in mailx
       The following commands can be entered only from input mode, by beginning a line  with  the
       escape  character  (by  default,  tilde  ( '~' )). See the escape variable description for
       changing this special character. The format for the commands shall be:

              <escape-character><command-char><separator>[<arguments>]

       where the <separator> can be zero or more <blank>s.

       In the following descriptions, the application shall ensure that the argument command (but
       not  mailx-command)  is  a  shell  command  string.  Any  string acceptable to the command
       interpreter specified by the SHELL variable when it is invoked as SHELL -c  command_string
       shall  be  valid.  The command can be presented as multiple arguments (that is, quoting is
       not required).

       Command escapes that are listed with msglist or mailx-command  arguments  are  invalid  in
       Send Mode and produce unspecified results.

       ~!  command
              Invoke  the  command  interpreter  specified  by  SHELL  with two arguments: -c and
              command; and then return to input mode. If the bang variable is set, each unescaped
              occurrence  of  '!'  in  command shall be replaced with the command executed by the
              previous ! command or ~! command escape.

       ~.     Simulate end-of-file (terminate message input).

       ~:  mailx-command, ~_  mailx-command

              Perform the command-level request.

       ~?     Write a summary of command escapes.

       ~A     This shall be equivalent to ~i Sign.

       ~a     This shall be equivalent to ~i sign.

       ~b  name...
              Add the names to the blind carbon copy ( Bcc) list.

       ~c  name...
              Add the names to the carbon copy ( Cc) list.

       ~d     Read in the dead-letter file. See DEAD for a description of this file.

       ~e     Invoke the editor, as specified by the EDITOR environment variable, on the  partial
              message.

       ~f [msglist]
              Forward  the  specified messages. The specified messages shall be inserted into the
              current message without alteration. This command escape also shall  insert  message
              headers  into the message with field selection affected by the discard, ignore, and
              retain commands.

       ~F [msglist]
              This shall be the equivalent of the ~f command  escape,  except  that  all  headers
              shall  be  included  in  the  message,  regardless of previous discard, ignore, and
              retain commands.

       ~h     If standard input is a terminal, prompt for a Subject line and the To, Cc, and  Bcc
              lists.  Other implementation-defined headers may also be presented for editing.  If
              the field is written with an initial value, it can be edited as if it had just been
              typed.

       ~i  string
              Insert  the  value of the named variable, followed by a <newline>, into the text of
              the message. If the string is unset or null, the message shall not be changed.

       ~m [msglist]
              Insert the specified messages into the message, prefixing non-empty lines with  the
              string in the indentprefix variable.  This command escape also shall insert message
              headers into the message, with field selection affected by the discard, ignore, and
              retain commands.

       ~M [msglist]
              This  shall  be  the  equivalent  of the ~m command escape, except that all headers
              shall be included in the message,  regardless  of  previous  discard,  ignore,  and
              retain commands.

       ~p     Write  the  message  being  entered.  If  the message is longer than crt lines (see
              Internal Variables in mailx ), the output shall be paginated as described  for  the
              PAGER variable.

       ~q     Quit (see the quit command) from input mode by simulating an interrupt. If the body
              of the message is not empty, the partial message shall be saved in the  dead-letter
              file. See DEAD for a description of this file.

       ~r  file, ~<
              file, ~r !command, ~< !command

              Read  in  the  file  specified by the pathname file. If the argument begins with an
              exclamation mark ( '!' ), the rest of the string shall be  taken  as  an  arbitrary
              system  command;  the  command interpreter specified by SHELL shall be invoked with
              two arguments: -c and command. The standard output of  command  shall  be  inserted
              into the message.

       ~s  string
              Set the subject line to string.

       ~t  name...
              Add the given names to the To list.

       ~v     Invoke  the full-screen editor, as specified by the VISUAL environment variable, on
              the partial message.

       ~w  file
              Write the partial message, without the header, onto the file named by the  pathname
              file.  The file shall be created or the message shall be appended to it if the file
              exists.

       ~x     Exit as with ~q, except the message shall not be saved in the dead-letter file.

       ~|  command
              Pipe the body of the message through the given  command  by  invoking  the  command
              interpreter  specified  by SHELL with two arguments: -c and command. If the command
              returns a successful exit status, the standard output of the command shall  replace
              the  message.  Otherwise, the message shall remain unchanged. If the command fails,
              an error message giving the exit status shall be written.

EXIT STATUS

       When the -e option is specified, the following exit values are returned:

        0     Mail was found.

       >0     Mail was not found or an error occurred.

       Otherwise, the following exit values are returned:

        0     Successful completion; note that this status implies that all messages  were  sent,
              but it gives no assurances that any of them were actually delivered.

       >0     An error occurred.

CONSEQUENCES OF ERRORS

       When in input mode (Receive Mode) or Send Mode:

        * If an error is encountered processing a command escape (see Command Escapes in mailx ),
          a diagnostic message shall be written to standard error, and the message being composed
          may be modified, but this condition shall not prevent the message from being sent.

        * Other errors shall prevent the sending of the message.

       When in command mode:

        * Default.

       The following sections are informative.

APPLICATION USAGE

       Delivery  of  messages  to remote systems requires the existence of communication paths to
       such systems. These need not exist.

       Input lines are limited to {LINE_MAX} bytes, but mailers between systems may  impose  more
       severe  line-length  restrictions.  This volume of IEEE Std 1003.1-2001 does not place any
       restrictions on the length of messages  handled  by  mailx,  and  for  delivery  of  local
       messages  the  only  limitations should be the normal problems of available disk space for
       the target mail file.  When  sending  messages  to  external  machines,  applications  are
       advised  to  limit  messages  to  less than 100000 bytes because some mail gateways impose
       message-length restrictions.

       The format of the system mailbox is intentionally unspecified. Not all  systems  implement
       system  mailboxes as flat files, particularly with the advent of multimedia mail messages.
       Some system mailboxes may be multiple files, others records in a  database.  The  internal
       format  of the messages themselves is specified with the historical format from Version 7,
       but only after the messages have been saved in some file other than  the  system  mailbox.
       This  was  done so that many historical applications expecting text-file mailboxes are not
       broken.

       Some new formats for messages can be expected in the  future,  probably  including  binary
       data, bit maps, and various multimedia objects. As described here, mailx is not prohibited
       from handling such messages, but it must store them as text files in  secondary  mailboxes
       (unless  some  extension, such as a variable or command line option, is used to change the
       stored format). Its method  of  doing  so  is  implementation-defined  and  might  include
       translating  the  data  into  text  file-compatible  or  readable form or omitting certain
       portions of the message from the stored output.

       The discard and ignore commands are not inverses of the retain command. The retain command
       discards all header-fields except those explicitly retained. The discard command keeps all
       header-fields except those explicitly discarded. If headers exist on the  retained  header
       list, discard and ignore commands are ignored.

EXAMPLES

       None.

RATIONALE

       The  standard  developers felt strongly that a method for applications to send messages to
       specific users was necessary. The  obvious  example  is  a  batch  utility,  running  non-
       interactively, that wishes to communicate errors or results to a user. However, the actual
       format, delivery mechanism, and method of reading the message are clearly beyond the scope
       of this volume of IEEE Std 1003.1-2001.

       The intent of this command is to provide a simple, portable interface for sending messages
       non-interactively. It merely defines a "front-end" to the historical mail  system.  It  is
       suggested  that  implementations explicitly denote the sender and recipient in the body of
       the delivered message. Further specification of formats for either the message envelope or
       the message itself were deliberately not made, as the industry is in the midst of changing
       from the current standards to  a  more  internationalized  standard  and  it  is  probably
       incorrect, at this time, to require either one.

       Implementations  are encouraged to conform to the various delivery mechanisms described in
       the CCITT X.400 standards or to the equivalent Internet standards, described  in  Internet
       Request for Comment (RFC) documents RFC 819, RFC 822, RFC 920, RFC 921, and RFC 1123.

       Many  historical  systems modified each body line that started with From  by prefixing the
       'F' with '>' . It is unnecessary, but allowed, to do that when the string does not  follow
       a blank line because it cannot be confused with the next header.

       The  edit and visual commands merely edit the specified messages in a temporary file. They
       do not modify the contents of those messages in the mailbox; such a  capability  could  be
       added as an extension, such as by using different command names.

       The  restriction  on  a  subject line being {LINE_MAX}-10 bytes is based on the historical
       format that consumes 10 bytes for Subject:  and the trailing  <newline>.  Many  historical
       mailers  that  a  message may encounter on other systems are not able to handle lines that
       long, however.

       Like the utilities logger and lp, mailx admittedly is difficult  to  test.  This  was  not
       deemed   sufficient   justification   to   exclude   this  utility  from  this  volume  of
       IEEE Std 1003.1-2001. It is also arguable that it is, in  fact,  testable,  but  that  the
       tests themselves are not portable.

       When  mailx  is being used by an application that wishes to receive the results as if none
       of the User Portability Utilities option features were  supported,  the  DEAD  environment
       variable  must  be  set  to  /dev/null. Otherwise, it may be subject to the file creations
       described in mailx ASYNCHRONOUS EVENTS. Similarly, if the MAILRC environment  variable  is
       not  set  to /dev/null, historical versions of mailx and Mail read initialization commands
       from a file before processing begins. Since the initialization that a user specifies could
       alter  the  contents  of messages an application is trying to send, such applications must
       set MAILRC to /dev/null.

       The description of LC_TIME uses "may affect" because many  historical  implementations  do
       not  or  cannot  manipulate  the  date and time strings in the incoming mail headers. Some
       headers found in incoming mail do not have enough information to determine the timezone in
       which  the mail originated, and, therefore, mailx cannot convert the date and time strings
       into the internal form that then is parsed by  routines  like  strftime()  that  can  take
       LC_TIME  settings  into  account.  Changing  all these times to a user-specified format is
       allowed, but not required.

       The paginator selected when PAGER is null or unset is partially unspecified to  allow  the
       System  V  historical  practice  of  using  pg  as  the  default. Bypassing the pagination
       function, such as by declaring that cat is the paginator, would not meet with the intended
       meaning  of  this  description.  However,  any  "portable  user"  would  have to set PAGER
       explicitly to get his or her preferred paginator on all systems. The paginator choice  was
       made  partially  unspecified,  unlike the VISUAL editor choice (mandated to be vi) because
       most historical pagers follow a  common  theme  of  user  input,  whereas  editors  differ
       dramatically.

       Options  to  specify  addresses  as  cc  (carbon  copy)  or  bcc  (blind carbon copy) were
       considered to be format details and were omitted.

       A zero exit status implies that all messages were sent, but it gives  no  assurances  that
       any  of  them  were  actually  delivered.  The  reliability  of  the delivery mechanism is
       unspecified and is an appropriate marketing distinction between systems.

       In order to conform to the Utility Syntax Guidelines,  a  solution  was  required  to  the
       optional  file  option-argument  to  -f.  By  making  file  an operand, the guidelines are
       satisfied and users remain portable. However, it does  force  implementations  to  support
       usage such as:

              mailx -fin mymail.box

       The no name method of unsetting variables is not present in all historical systems, but it
       is in System V and provides a logical set of commands corresponding to the format  of  the
       display of options from the mailx set command without arguments.

       The ask and asksub variables are the names selected by BSD and System V, respectively, for
       the same feature. They are synonyms in this volume of IEEE Std 1003.1-2001.

       The mailx echo command was not documented in the BSD version and  has  been  omitted  here
       because it is not obviously useful for interactive users.

       The  default  prompt  on  the System V mailx is a question mark, on BSD Mail an ampersand.
       Since this volume of IEEE Std 1003.1-2001 chose the mailx  name,  it  kept  the  System  V
       default, assuming that BSD users would not have difficulty with this minor incompatibility
       (that they can override).

       The meanings of r and R are reversed between System V mailx and SunOS  Mail.  Once  again,
       since  this  volume  of  IEEE Std 1003.1-2001  chose  the mailx name, it kept the System V
       default, but allows the SunOS user to achieve the desired results using flipr, an internal
       variable in System V mailx, although it has not been documented in the SVID.

       The  indentprefix  variable,  the  retain  and unalias commands, and the ~F and ~M command
       escapes were adopted from 4.3 BSD Mail.

       The version command was not included because no sufficiently general specification of  the
       version  information  could be devised that would still be useful to a portable user. This
       command name should be used by suppliers who wish to provide version information about the
       mailx command.

       The  "implementation-specific  (unspecified)  system  start-up file" historically has been
       named /etc/mailx.rc, but this specific name and location are not required.

       The intent of the wording for the  next  command  is  that  if  any  command  has  already
       displayed  the  current  message it should display a following message, but, otherwise, it
       should display the current message. Consider the command sequence:

              next 3
              delete 3
              next

       where the autoprint option was not set. The normative text specifies that the second  next
       command  should  display  a  message  following the third message, because even though the
       current message has not been displayed since it was set by the delete command, it has been
       displayed  since  the  current message was anything other than message number 3. This does
       not always match historical practice in  some  implementations,  where  the  command  file
       address  followed  by  next  (or the default command) would skip the message for which the
       user had searched.

FUTURE DIRECTIONS

       None.

SEE ALSO

       Shell Command Language , ed , ls , more , vi

COPYRIGHT

       Portions of this text are reprinted and  reproduced  in  electronic  form  from  IEEE  Std
       1003.1,  2003  Edition,  Standard  for Information Technology -- Portable Operating System
       Interface (POSIX), The Open Group Base Specifications Issue 6, Copyright (C) 2001-2003  by
       the  Institute  of  Electrical  and  Electronics Engineers, Inc and The Open Group. In the
       event of any discrepancy between this version and the original IEEE  and  The  Open  Group
       Standard,  the  original  IEEE  and  The  Open Group Standard is the referee document. The
       original Standard can be obtained online at http://www.opengroup.org/unix/online.html .