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 Commandsinmailx); this is termed commandmode.
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 Commandsinmailx 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 mailxset 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-Upinmailx
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 user 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 a start-up file: !, edit,
hold, mail, preserve, reply, Reply, shell, visual, Copy, followup, and Followup. Any errors in a 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 file.
A blank line in a start-up file shall be ignored.
InternalVariablesinmailx
The following variables are internal mailx variables. Each internal variable can be set via the mailxset
command at any time. The unset and setnoname 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 Commandsinmailx 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 CommandEscapesinmailx. 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 CommandEscapesinmailx.)
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.
Commandsinmailx
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 viceversa. 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 Section2.6, WordExpansions). If more
than a single pathname results from this expansion and the command is expecting one file, the effects
are unspecified.
DeclareAliasesSynopsis:
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.
DeclareAlternativesSynopsis:
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.
ChangeCurrentDirectorySynopsis:
cd [directory]
ch[dir][directory]
Change directory. If directory is not specified, the contents of HOME shall be used.
CopyMessagesSynopsis:
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.
DeleteMessagesSynopsis:
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.
DiscardHeaderFieldsSynopsis:
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.
DeleteMessagesandDisplaySynopsis:
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.
EchoaStringSynopsis:
ec[ho]string ...
Echo the given strings, equivalent to the shell echo utility.
EditMessagesSynopsis:
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.
ExitSynopsis:
ex[it]
x[it]
Exit from mailx without changing the mailbox. No messages shall be saved in the mbox (see also quit).
ChangeFolderSynopsis:
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.
DisplayListofFoldersSynopsis:
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).
FollowUpSpecifiedMessagesSynopsis:
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.
DisplayHeaderSummaryforSpecifiedMessagesSynopsis:
f[rom][msglist]
Write the header summary for the specified messages.
DisplayHeaderSummarySynopsis:
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.
HelpSynopsis:
hel[p]
?
Write a summary of commands.
HoldMessagesSynopsis:
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.
ExecuteCommandsConditionallySynopsis:
i[f] s|r
mail-commands
el[se]mail-commands
en[dif]
Execute commands conditionally, where ifs executes the following mail-commands, up to an else or endif,
if the program is in Send Mode, and ifr shall cause the mail-commands to be executed only in Receive
Mode.
ListAvailableCommandsSynopsis:
l[ist]
Write a list of all commands available. No explanation shall be given.
MailaMessageSynopsis:
m[ail]address...
Mail a message to the specified addresses or aliases.
DirectMessagestomboxSynopsis:
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.
ProcessNextSpecifiedMessageSynopsis:
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.
PipeMessageSynopsis:
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.
DisplayMessagewithHeadersSynopsis:
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.
DisplayMessageSynopsis:
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.
QuitSynopsis:
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.
ReplytoaMessageListSynopsis:
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.
ReplytoaMessageSynopsis:
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.
RetainHeaderFieldsSynopsis:
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.
SaveMessagesSynopsis:
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.
SetVariablesSynopsis:
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 noname form shall be equivalent to unsetname.
InvokeaShellSynopsis:
sh[ell]
Invoke an interactive command interpreter (see also SHELL).
DisplayMessageSizeSynopsis:
si[ze][msglist]
Write the size in bytes of each of the specified messages.
ReadmailxCommandsFromaFileSynopsis:
so[urce]file
Read and execute commands from the file named by the pathname file and return to command mode.
DisplayBeginningofMessagesSynopsis:
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.
TouchMessagesSynopsis:
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.
DeleteAliasesSynopsis:
una[lias][alias]...
Delete the specified alias names. If a specified alias does not exist, the results are unspecified.
UndeleteMessagesSynopsis:
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.
UnsetVariablesSynopsis:
uns[et]name...
Cause the specified variables to be erased.
EditMessagewithFull-ScreenEditorSynopsis:
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.
WriteMessagestoaFileSynopsis:
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.
ScrollHeaderDisplaySynopsis:
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.
InvokeShellCommandSynopsis:
!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.
NullCommandSynopsis:
# comment
This null command (comment) shall be ignored by mailx.
DisplayCurrentMessageNumberSynopsis:
=
Write the current message number.
CommandEscapesinmailx
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-ccommand_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 ~iSign.
~a This shall be equivalent to ~isign.
~bname...
Add the names to the blind carbon copy (Bcc) list.
~cname...
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.
~istring 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 InternalVariablesinmailx), 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.
~rfile, ~<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.
~sstring Set the subject line to string.
~tname...
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.
~wfile 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.