Bash Cures Cancer
Learn the UNIX/Linux command line

Home     Man Pages     SpamDefeator


MAILX(P)							     MAILX(P)



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	 nor-
       mally  located  in  the	directory referred to by the HOME environment
       variable (see MBOX in the ENVIRONMENT VARIABLES section for a descrip-
       tion  of	 this file). Messages shall remain in this file until explic-
       itly 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 mail-
	      box.

       -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	vari-
	      able, 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 .

       -u  user
	      Read the system mailbox of the login name user. This shall only
	      be successful if the invoking user has the  appropriate  privi-
	      leges 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 vari-
	      able; 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 mail-
       box 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 vari-
	      able. 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 ) com-
	      mand is used. The default editor is unspecified.	 On  XSI-con-
	      formant  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 Vari-
	      ables 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 sys-
	      tem  mailbox  that have been read. The exit command shall over-
	      ride 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 unspeci-
	      fied 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 pagina-
	      tion 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 sys-
	      tem 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  unspeci-
	      fied 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 Portabil-
	      ity 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 Com-
	      mand 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	 cur-
	       rent  input  line, and continue processing, bypassing the mes-
	       sage-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	 com-
	       mand-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 can-
		       not be created, the message shall not be saved.




       The  mailx  utility  shall take the standard action for all other sig-
       nals.

STDOUT
       In command and input modes, all output,	including  prompts  and	 mes-
       sages, 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
       [one or more header-lines; see Commands in mailx ]
	empty line
	[zero or more body lines
       empty line]
       [line beginning with From...]

       where  each  message begins with the From  line shown, preceded
       by the beginning of the file or an empty line. (The From 	 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  line and any additional header lines
       are unspecified, except that none shall be empty. The format of a mes-
       sage body line is also unspecified, except that no line	following  an
       empty  line shall start with From ; mailx shall modify any such
       user-entered message body lines (following an empty line and beginning
       with From ) by adding one or more characters to precede the 'F'
       ; it may add these characters to From  lines that are not	 pre-
       ceded 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 implemen-
       tations 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 cir-
       cumstances, 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 termi-
       nal, 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 Com-
       mands 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 envi-
       ronmental  and  internal variables. These are flags and valued parame-
       ters 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  termina-
       tion  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 com-
       mand, if one exists, or the first undeleted message before  the	high-
       est-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 com-
	      mands: ~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	 com-
	      mands:  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 loca-
	      tion.

       saved  The  message  has	 been  processed by one of the following com-
	      mands: 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 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 oper-
       ate, 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, overrid-
	   ing 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	 con-
       tinue  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 noall-
	      net.  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 speci-
	      fied 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  possi-
	      ble  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 ~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  implementa-
	      tion-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 addi-
	      tion 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	vari-
	      able shall default to one .

       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 sev-
	      eral 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  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 head-
	      ers and z commands. If screen is not specified, a	 value	based
	      on  the  terminal type identified by the TERM environment vari-
	      able, 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 s and 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 s and 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	 fol-
       lowed  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 pre-
       ceding the '[' ), the full command (all characters shown for the	 com-
       mand  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 begin-
	  ning 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	 dis-
	  carded and the next line shall continue the command.


       Filenames,  where expected, shall be subjected to the following trans-
       formations, 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 file-
	  name 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  speci-
       fied  by	 the  user  in an outgoing message (that is, other recipients
       addressed indirectly through the reply command shall  not  be  substi-
       tuted  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 substi-
       tution. 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 writ-
       ten as described for the print command (see the print command); other-
       wise, 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 com-
       mands 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	 cur-
       rent  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 mail-
       box 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 vari-
	      able.)


       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	vari-
       able.  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 pre-
       serve 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 com-
       mands.

   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 cur-
       rent 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  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 cur-
       rent 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:   (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: 
       (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 mail-
       box 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 address-
       ing 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 equiva-
       lent 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 specif-
       ically 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	vari-
       able shall be invoked to edit each file in sequence.  The default edi-
       tor 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 com-
       mand 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  begin-
       ning 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:


	      []

       where the  can be zero or more 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	argu-
       ments 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 pre-
	      vious ! 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 vari-
	      able, on the partial message.

       ~f [msglist]
	      Forward the specified messages. The specified messages shall be
	      inserted into the current message without alteration. This com-
	      mand  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 , 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 mes-
	      sage, 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	argu-
	      ment  begins  with an exclamation mark ( '!' ), the rest of the
	      string shall be taken as an arbitrary system command; the	 com-
	      mand  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 envi-
	      ronment 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 stan-
	  dard 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 com-
       munication paths to such systems. These need not exist.

       Input lines are limited to {LINE_MAX} bytes, but mailers between	 sys-
       tems  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-compati-
       ble  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	 com-
       mand.  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 communi-
       cate 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 implementa-
       tions 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	 .  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 envi-
       ronment 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  applica-
       tions 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	 fol-
       low 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  reliabil-
       ity  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.	 How-
       ever, 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 his-
       torical 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 vol-
       ume 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 Sys-
       tem 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" his-
       torically 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  follow-
       ing  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 dis-
       played since the current message was anything other than message	 num-
       ber  3.	This does not always match historical practice in some imple-
       mentations, 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 Technol-
       ogy -- 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 .



POSIX				     2003			     MAILX(P)



UNIX/Linux commands referenced on this page:
  1. more
  2. users
  3. Mail
  4. as
  5. find
  6. file
  7. write
  8. login
  9. enable
  10. which
  11. locale
  12. date
  13. time
  14. sh
  15. strings
  16. replace
  17. accept
  18. at
  19. top
  20. last
  21. display
  22. refer
  23. addresses
  24. size
  25. ex
  26. echo
  27. make
  28. less
  29. batch
  30. logger
  31. lp
  32. convert
  33. cat
  34. who
  35. ed
  36. ls