PROLOG | NAME | SYNOPSIS | DESCRIPTION | OPTIONS | OPERANDS | STDIN | INPUT FILES | ENVIRONMENT VARIABLES | ASYNCHRONOUS EVENTS | STDOUT | STDERR | OUTPUT FILES | EXTENDED DESCRIPTION | EXIT STATUS | CONSEQUENCES OF ERRORS | APPLICATION USAGE | EXAMPLES | RATIONALE | FUTURE DIRECTIONS | SEE ALSO | COPYRIGHT

MAILX(1P)                 POSIX Programmer's Manual                MAILX(1P)

PROLOG         top

       This manual page is part of the POSIX Programmer's Manual.  The Linux
       implementation of this interface may differ (consult the
       corresponding Linux manual page for details of Linux behavior), or
       the interface may not be implemented on Linux.

NAME         top

       mailx — process messages

SYNOPSIS         top

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

   Receive Mode
           mailx −e

           mailx [−HiNn] [−F] [−u user]

           mailx −f [−HiNn] [−F] [file]

DESCRIPTION         top

       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         top

       The mailx utility shall conform to the Base Definitions volume of
       POSIX.1‐2008, 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 appropriate
                 privileges to read the system mailbox of that user.

OPERANDS         top

       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         top

       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         top

       When mailx is used as described by this volume of POSIX.1‐2008, 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         top

       Some of the functionality described in this section shall be provided
       on implementations that support the User Portability Utilities option
       as described in the text, and is not further shaded for this option.

       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 POSIX.1‐2008, 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   This variable may determine the format and contents of the
                 date and time strings written by mailx.  This volume of
                 POSIX.1‐2008 specifies the effects of this variable only
                 for systems supporting the User Portability Utilities
                 option.

       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         top

       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         top

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

STDERR         top

       The standard error shall be used only for diagnostic messages.

OUTPUT FILES         top

       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
       POSIX.1‐2008, 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         top

       The functionality in the entire EXTENDED DESCRIPTION section shall be
       provided on implementations supporting the User Portability Utilities
       option.  The functionality described in this section shall be
       provided on implementations that support the User Portability
       Utilities option (and the rest of this section is not further shaded
       for this option).

       The mailx utility need not 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> characters, 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 unspecified 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-mark>
                 characters ('!')  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> and <newline>
                 characters, 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> and <newline>
                 characters, 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 <quotation-mark> characters 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
           Section 2.6, 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 variable.) 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] file
                     C[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. Should the current message
       location be the result of an immediately preceding hold, mbox,
       preserve, or touch command, next will act as if the current message
       has already been written.

   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] file
                     S[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> characters.

       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         top

       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         top

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

        *  If an error is encountered processing an input line beginning
           with a <tilde> ('~') character, (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         top

       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 POSIX.1‐2008 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         top

       None.

RATIONALE         top

       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 POSIX.1‐2008.

       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 POSIX.1‐2008. 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 POSIX.1‐2008.

       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 POSIX.1‐2008 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 POSIX.1‐2008 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         top

       None.

SEE ALSO         top

       Chapter 2, Shell Command Language, ed(1p), ls(1p), more(1p), vi(1p)

       The Base Definitions volume of POSIX.1‐2008, Chapter 8, Environment
       Variables, Section 12.2, Utility Syntax Guidelines

COPYRIGHT         top

       Portions of this text are reprinted and reproduced in electronic form
       from IEEE Std 1003.1, 2013 Edition, Standard for Information
       Technology -- Portable Operating System Interface (POSIX), The Open
       Group Base Specifications Issue 7, Copyright (C) 2013 by the
       Institute of Electrical and Electronics Engineers, Inc and The Open
       Group.  (This is POSIX.1-2008 with the 2013 Technical Corrigendum 1
       applied.) 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.unix.org/online.html .

       Any typographical or formatting errors that appear in this page are
       most likely to have been introduced during the conversion of the
       source files to man page format. To report such errors, see
       https://www.kernel.org/doc/man-pages/reporting_bugs.html .

IEEE/The Open Group                 2013                           MAILX(1P)

Pages that refer to this page: logger(1p)lp(1p)uucp(1p)uuencode(1p)