mailx(1) USER COMMANDS mailx(1)
NAME
mailx - interactive message processing system
SYNOPSIS
mailx [ options ] [ name... ]
DESCRIPTION
The command mailx provides a comfortable, flexible environ-
ment for sending and receiving messages electronically.
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.
Many of the remote features of mailx work only if the Basic
Networking Utilities are installed on your system.
Incoming mail is stored in a standard file for each user,
called the mailbox for that user. When mailx is called to
read messages, the mailbox is the default place to find
them. As messages are read, they are marked to be moved to
a secondary file for storage, unless specific action is
taken, so that the messages need not be seen again. This
secondary file is called the mbox and is normally located in
the user's HOME directory [see MBOX (ENVIRONMENT VARIABLES)
for a description of this file]. Messages can be saved in
other secondary files named by the user. Messages remain in
a secondary file until forcibly removed.
The user can access a secondary file by using the -f option
of the mailx command. Messages in the secondary file can
then be read or otherwise processed using the same COMMANDS
as in the primary mailbox. This gives rise within these
pages to the notion of a current mailbox.
On the command line, options start with a dash (-) and any
other arguments are taken to be destinations (recipients).
If no recipients are specified, mailx attempts to read mes-
sages from the mailbox. Command-line options are:
-d Turn on debugging output.
-e Test for presence of mail. mailx prints
nothing and exits with a successful
return code if there is mail to read.
-f [filename] Read messages from filename instead of
mailbox. If no filename is specified,
the mbox is used.
-F Record the message in a file named after
the first recipient. Overrides the
1
mailx(1) USER COMMANDS mailx(1)
record variable, if set (see ENVIRONMENT
VARIABLES).
-h number The number of network ``hops'' made so
far. This is provided for network
software to avoid infinite delivery
loops. This option and its argument is
passed to the delivery program.
-H Print header summary only.
-i Ignore interrupts. See also ignore
(ENVIRONMENT VARIABLES).
-I Include the newsgroup and article-id
header lines when printing mail messages.
This option requires the -f option to be
specified.
-n Do not initialize from the system default
mailx.rc file.
-N Do not print initial header summary.
-r address Use address as the return address when
invoking the delivery program. All tilde
commands are disabled. This option and
its argument is passed to the delivery
program.
-s subject Set the Subject header field to subject.
-T file Message-id and article-id header lines
are recorded in file after the message is
read. This option will also set the -I
option.
-u user Read user's mailbox. This is only effec-
tive if user's mailbox is not read pro-
tected.
-U Convert uucp style addresses to internet
standards. Overrides the conv environ-
ment variable.
-V Print the mailx version number and exit.
When reading mail, mailx is in command mode. A header sum-
mary of the first several messages is displayed, followed by
a prompt indicating mailx can accept regular commands (see
COMMANDS below). When sending mail, mailx is in input mode.
If no subject is specified on the command line, a prompt for
2
mailx(1) USER COMMANDS mailx(1)
the subject is printed. (A subject longer than 1024 charac-
ters causes mailx to print the message mail: ERROR signal
10; the mail will not be delivered.) As the message is
typed, mailx reads the message and store it in a temporary
file. Commands may be entered by beginning a line with the
tilde (~) escape character followed by a single command
letter and optional arguments. See TILDE ESCAPES for a sum-
mary of these commands.
At any time, the behavior of mailx is governed by a set of
environment variables. These are flags and valued parame-
ters which are set and cleared via the set and unset com-
mands. See ENVIRONMENT VARIABLES below for a summary of
these parameters.
Recipients listed on the command line may be of three types:
login names, shell commands, or alias groups. Login names
may be any network address, including mixed network address-
ing. If mail is found to be undeliverable, an attempt is
made to return it to the sender's mailbox. If the recipient
name begins with a pipe symbol ( | ), the rest of the name
is taken to be a shell command to pipe the message through.
This provides an automatic interface with any program that
reads the standard input, such as lp(1) for recording outgo-
ing mail on paper. Alias groups are set by the alias com-
mand (see COMMANDS below) and are lists of recipients of any
type.
Regular commands are of the form
[ command ] [ msglist ] [ arguments ]
If no command is specified in command mode, print is
assumed. In input mode, commands are recognized by the
escape character, and lines not treated as commands are
taken as input for the message.
Each message is assigned a sequential number, and there is
at any time the notion of a current message, marked by a
right angle bracket (>) in the header summary. Many com-
mands take an optional list of messages (msglist) to operate
on. The default for msglist is the current message. A
msglist is a list of message identifiers separated by
spaces, which may include:
n Message number n.
. The current message.
^ The first undeleted message.
$ The last message.
3
mailx(1) USER COMMANDS mailx(1)
* All messages.
n-m An inclusive range of message numbers.
user All messages from user.
/string All messages with string in the subject line
(case ignored).
:c All messages of type c, where c is one of:
d deleted messages
n new messages
o old messages
r read messages
u unread messages
Note that the context of the command determines
whether this type of message specification
makes sense.
Other arguments are usually arbitrary strings whose usage
depends on the command involved. File names, where
expected, are expanded via the normal shell conventions [see
sh(1)]. Special characters are recognized by certain com-
mands and are documented with the commands below.
At start-up time, mailx tries to execute commands from the
optional system-wide file (/etc/mail/mailx.rc) to initialize
certain parameters, then from a private start-up file
($HOME/.mailrc) for personalized variables. With the excep-
tions noted below, regular commands are legal inside start-
up files. The most common use of a start-up file is to set
up initial display options and alias lists. The following
commands are not legal in the start-up file: !, Copy, edit,
followup, Followup, hold, mail, preserve, reply, Reply,
shell, and visual. An error in the start-up file causes the
remaining lines in the file to be ignored. The .mailrc file
is optional, and must be constructed locally.
COMMANDS
The following is a complete list of mailx commands:
!shell-command
Escape to the shell. See SHELL (ENVIRONMENT VARI-
ABLES).
# comment
Null command (comment). This may be useful in .mailrc
4
mailx(1) USER COMMANDS mailx(1)
files.
= Print the current message number.
? Prints a summary of commands.
alias alias name ...
group alias name ...
Declare an alias for the given names. The names are
substituted when alias is used as a recipient. Useful
in the .mailrc file.
alternates name ...
Declares a list of alternate names for your login.
When responding to a message, these names are removed
from the list of recipients for the response. With no
arguments, alternates prints the current list of alter-
nate names. See also allnet (ENVIRONMENT VARIABLES).
cd [directory]
chdir [directory]
Change directory. If directory is not specified, $HOME
is used.
copy [filename]
copy [msglist] filename
Copy messages to the file without marking the messages
as saved. Otherwise equivalent to the save command.
Copy [msglist]
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
equivalent to the Save command.
delete [msglist]
Delete messages from the mailbox. If autoprint is set,
the next message after the last one deleted is printed
(see ENVIRONMENT VARIABLES).
discard [header-field ...]
ignore [header-field ...]
Suppresses printing of the specified header fields when
displaying messages on the screen. Examples of header
fields to ignore are status and cc. The fields are
included when the message is saved. The Print and Type
commands override this command. If no header is speci-
fied, the current list of header fields being ignored
will be printed. See also the undiscard and unignore
commands.
dp [msglist]
5
mailx(1) USER COMMANDS mailx(1)
dt [msglist]
Delete the specified messages from the mailbox and
print the next message after the last one deleted.
Roughly equivalent to a delete command followed by a
print command.
echo string ...
Echo the given strings [like echo(1)].
edit [msglist]
Edit the given messages. The messages are placed in a
temporary file and the EDITOR variable is used to get
the name of the editor (see ENVIRONMENT VARIABLES).
Default editor is ed(1).
exit
xit Exit from mailx, without changing the mailbox. No mes-
sages are saved in the mbox (see also quit).
file [filename]
folder [filename]
Quit from the current file of messages and read in the
specified file. Several special characters are recog-
nized when used as file names, with the following sub-
stitutions:
% the current mailbox.
%user the mailbox for user.
# the previous file.
& the current mbox.
Default file is the current mailbox.
folders
Print the names of the files in the directory set by
the folder variable (see ENVIRONMENT VARIABLES).
followup [message]
Respond to a message, recording the response in a file
whose name is derived from the author of the message.
Overrides the record variable, if set. See also the
Followup, Save, and Copy commands and outfolder
(ENVIRONMENT VARIABLES).
Followup [msglist]
Respond to the first message in the msglist, sending
the message to the author of each message in the
msglist. The subject line is taken from the first mes-
sage and the response is recorded in a file whose name
is derived from the author of the first message. See
also the followup, Save, and Copy commands and out-
folder (ENVIRONMENT VARIABLES).
from [msglist]
6
mailx(1) USER COMMANDS mailx(1)
Prints the header summary for the specified messages.
group alias name ...
alias alias name ...
Declare an alias for the given names. The names are
substituted when alias is used as a recipient. Useful
in the .mailrc file.
headers [message]
Prints the page of headers which includes the message
specified. The screen variable sets the number of
headers per page (see ENVIRONMENT VARIABLES). See also
the z command.
help Prints a summary of commands.
hold [msglist]
preserve [msglist]
Holds the specified messages in the mailbox.
if s | r
mail-commands
else
mail-commands
endif
Conditional execution, where s executes following
mail-commands, up to an else or endif, if the program
is in send mode, and r causes the mail-commands to be
executed only in receive mode. Useful in the .mailrc
file.
ignore [header-field ...]
discard [header-field ...]
Suppresses printing of the specified header fields when
displaying messages on the screen. Examples of header
fields to ignore are status and cc. All fields are
included when the message is saved. The Print and Type
commands override this command. If no header is speci-
fied, the current list of header fields being ignored
will be printed. See also the undiscard and unignore
commands.
list Prints all commands available. No explanation is
given.
mail name ...
Mail a message to the specified users.
Mail name
Mail a message to the specified user and record a copy
7
mailx(1) USER COMMANDS mailx(1)
of it in a file named after that user.
mbox [msglist]
Arrange for the given messages to end up in the stan-
dard mbox save file when mailx terminates normally.
See MBOX (ENVIRONMENT VARIABLES) for a description of
this file. See also the exit and quit commands.
next [message]
Go to next message matching message. A msglist may be
specified, but in this case the first valid message in
the list is the only one used. This is useful for
jumping to the next message from a specific user, since
the name would be taken as a command in the absence of
a real command. See the discussion of msglists above
for a description of possible message specifications.
pipe [msglist] [shell-command]
| [msglist] [shell-command]
Pipe the message through the given shell-command. The
message is treated as if it were read. If no arguments
are given, the current message is piped through the
command specified by the value of the cmd variable. If
the page variable is set, a form feed character is
inserted after each message (see ENVIRONMENT VARI-
ABLES).
preserve [msglist]
hold [msglist]
Preserve the specified messages in the mailbox.
Print [msglist]
Type [msglist]
Print the specified messages on the screen, including
all header fields. Overrides suppression of fields by
the ignore command.
print [msglist]
type [msglist]
Print the specified messages. If crt is set, the mes-
sages longer than the number of lines specified by the
crt variable are paged through the command specified by
the PAGER variable. The default command is pg(1) (see
ENVIRONMENT VARIABLES).
quit Exit from mailx, storing messages that were read in
mbox and unread messages in the mailbox. Messages that
have been explicitly saved in a file are deleted.
Reply [msglist]
Respond [msglist]
Send a response to the author of each message in the
8
mailx(1) USER COMMANDS mailx(1)
msglist. The subject line is taken from the first mes-
sage. If record is set to a file name, the response is
saved at the end of that file (see ENVIRONMENT VARI-
ABLES).
reply [message]
respond [message]
Reply to the specified message, including all other
recipients of the message. If record is set to a file
name, the response is saved at the end of that file
(see ENVIRONMENT VARIABLES).
Save [msglist]
Save the specified messages in a file whose name is
derived from the author of the first message. The name
of the file is taken to be the author's name with all
network addressing stripped off. See also the Copy,
followup, and Followup commands and outfolder (ENVIRON-
MENT VARIABLES).
save [filename]
save [msglist] filename
Save the specified messages in the given file. The
file is created if it does not exist. THe file
defaults to mbox. The message is deleted from the
mailbox when mailx terminates unless keepsave is set
(see also ENVIRONMENT VARIABLES and the exit and quit
commands).
set
set name
set name=string
set name=number
Define a variable called name. The variable may be
given a null, string, or numeric value. Set by itself
prints all defined variables and their values. See
ENVIRONMENT VARIABLES for detailed descriptions of the
mailx variables.
shell
Invoke an interactive shell [see also SHELL (ENVIRON-
MENT VARIABLES)].
size [msglist]
Print the size in characters of the specified messages.
source filename
Read commands from the given file and return to command
mode.
top [msglist]
Print the top few lines of the specified messages. If
9
mailx(1) USER COMMANDS mailx(1)
the toplines variable is set, it is taken as the number
of lines to print (see ENVIRONMENT VARIABLES). The
default is 5.
touch [msglist]
Touch the specified messages. If any message in
msglist is not specifically saved in a file, it is
placed in the mbox, or the file specified in the MBOX
environment variable, upon normal termination. See
exit and quit.
Type [msglist]
Print [msglist]
Print the specified messages on the screen, including
all header fields. Overrides suppression of fields by
the ignore command.
type [msglist]
print [msglist]
Print the specified messages. If crt is set, the mes-
sages longer than the number of lines specified by the
crt variable are paged through the command specified by
the PAGER variable. The default command is pg(1) (see
ENVIRONMENT VARIABLES).
undelete [msglist]
Restore the specified deleted messages. Will only
restore messages deleted in the current mail session.
If autoprint is set, the last message of those restored
is printed (see ENVIRONMENT VARIABLES).
undiscard header-field ...
unignore header-field ...
Remove the specified header fields from the list being
ignored.
unset name ...
Causes the specified variables to be erased. If the
variable was imported from the execution environment
(i.e., a shell variable) then it cannot be erased.
version
Prints the current version.
visual [msglist]
Edit the given messages with a screen editor. The mes-
sages are placed in a temporary file and the VISUAL
variable is used to get the name of the editor (see
ENVIRONMENT VARIABLES).
write [msglist] filename
Write the given messages on the specified file, minus
10
mailx(1) USER COMMANDS mailx(1)
the header and trailing blank line. Otherwise
equivalent to the save command.
xit
exit Exit from mailx, without changing the mailbox. No mes-
sages are saved in the mbox (see also quit).
z[+ | -]
Scroll the header display forward or backward one
screen-full. The number of headers displayed is set by
the screen variable (see ENVIRONMENT VARIABLES).
TILDE ESCAPES
The following commands may be entered only from input mode,
by beginning a line with the tilde escape character (~).
See escape (ENVIRONMENT VARIABLES) for changing this special
character.
~! shell-command
Escape to the shell.
~. Simulate end of file (terminate message input).
~: mail-command
~ mail-command
Perform the command-level request. Valid only when
sending a message while reading mail.
~? Print a summary of tilde escapes.
~A Insert the autograph string Sign into the message (see
ENVIRONMENT VARIABLES).
~a Insert the autograph string sign into the message (see
ENVIRONMENT VARIABLES).
~b names ...
Add the names to the blind carbon copy (Bcc) list.
~c names ...
Add the names to the carbon copy (Cc) list.
~d Read in the dead.letter file. See DEAD (ENVIRONMENT
VARIABLES) for a description of this file.
~e Invoke the editor on the partial message. See also
EDITOR (ENVIRONMENT VARIABLES).
~f [msglist]
Forward the specified messages. The messages are
inserted into the message without alteration.
11
mailx(1) USER COMMANDS mailx(1)
~h Prompt for Subject line and To, Cc, and Bcc lists. If
the field is displayed with an initial value, it may be
edited as if you had just typed it.
~i string
Insert the value of the named variable into the text of
the message. For example, ~A is equivalent to Environ-
ment variables set and exported in the shell are also
accessible by ~i.
~m [msglist]
Insert the specified messages into the letter, shifting
the new text to the right one tab stop. Valid only
when sending a message while reading mail.
~p Print the message being entered.
~q Quit from input mode by simulating an interrupt. If
the body of the message is not null, the partial mes-
sage is saved in dead.letter. See DEAD (ENVIRONMENT
VARIABLES) for a description of this file.
~r filename
~< filename
~< !shell-command
Read in the specified file. If the argument begins
with an exclamation point (!), the rest of the string
is taken as an arbitrary shell command and is executed,
with the standard output inserted into the message.
~s string ...
Set the subject line to string.
~t names ...
Add the given names to the To list.
~v Invoke a preferred screen editor on the partial mes-
sage. See also VISUAL (ENVIRONMENT VARIABLES).
~w filename
Write the message into the given file, without the
header.
~x Exit as with ~q except the message is not saved in
dead.letter.
~| shell-command
Pipe the body of the message through the given shell-
command. If the shell-command returns a successful
exit status, the output of the command replaces the
message.
12
mailx(1) USER COMMANDS mailx(1)
ENVIRONMENT VARIABLES
The following are environment variables taken from the exe-
cution environment and are not alterable within mailx.
HOME=directory
The user's base of operations.
MAILRC=filename
The name of the start-up file. Default is
$HOME/.mailrc.
The following variables are internal mailx variables. They
may be imported from the execution environment or set via
the set command at any time. The unset command may be used
to erase variables.
allnet
All network names whose last component (login name)
match are treated as identical. This causes the
msglist message specifications to behave similarly.
Default is noallnet. See also the alternates command
and the metoo variable.
append
Upon termination, append messages to the end of the
mbox file instead of prepending them. Default is noap-
pend.
askcc
Prompt for the Cc list after the Subject is entered.
Default is noaskcc.
askbcc
Prompt for the Bcc list after the Subject is entered.
Default is noaskbcc.
asksub
Prompt for subject if it is not specified on the com-
mand line with the -s option. Enabled by default.
autoprint
Enable automatic printing of messages after delete and
undelete commands. Default is noautoprint.
bang Enable the special-casing of exclamation points (!) in
shell escape command lines as in vi(1). Default is
nobang.
cmd=shell-command
Set the default command for the pipe command. No
default value.
13
mailx(1) USER COMMANDS mailx(1)
conv=conversion
Convert uucp addresses to the specified address style.
The only valid conversion now is internet, which uses
domain-style addressing. Conversion is disabled by
default. See also the -U command-line option.
crt=number
Pipe messages having more than number lines through the
command specified by the value of the PAGER variable
[pg(1) by default]. Disabled by default.
DEAD=filename
The name of the file in which to save partial letters
in case of untimely interrupt. Default is
$HOME/dead.letter.
debug
Enable verbose diagnostics for debugging. Messages are
not delivered. Default is nodebug.
dot Take a period on a line by itself during input from a
terminal as end-of-file. Default is nodot.
EDITOR=shell-command
The command to run when the edit or ~e command is used.
Default is ed(1).
escape=c
Substitute c for the ~ escape character. Takes effect
with next message sent.
folder=directory
The directory for saving standard mail files. User-
specified file names beginning with a plus (+) are
expanded by preceding the file name with this directory
name to obtain the real file name. If directory does
not start with a slash (/), $HOME is prepended to it.
In order to use the plus (+) construct on a mailx com-
mand line, folder must be an exported sh environment
variable. There is no default for the folder variable.
See also outfolder below.
from Enable the parsing of incoming From: header lines to
establish the return address in replies. Also causes
outgoing From: lines to be generated in a fashion that
is generally more suitable for RFC 822 mail systems.
It is reccomended that this variable be used on systems
with access to the InterNet or InterNet-style mail sys-
tems.
header
Enable printing of the header summary when entering
14
mailx(1) USER COMMANDS mailx(1)
mailx. Enabled by default.
hold Preserve all messages that are read in the mailbox
instead of putting them in the standard mbox save file.
Default is nohold.
ignore
Ignore interrupts while entering messages. Handy for
noisy dial-up lines. Default is noignore.
ignoreeof
Ignore end-of-file during message input. Input must be
terminated by a period (.) on a line by itself or by
the ~. command. Default is noignoreeof. See also dot
above.
keep When the mailbox is empty, truncate it to zero length
instead of removing it. Disabled by default.
keepsave
Keep messages that have been saved in other files in
the mailbox instead of deleting them. Default is
nokeepsave.
MBOX=filename
The name of the file to save messages which have been
read. The xit command overrides this function, as does
saving the message explicitly in another file. Default
is $HOME/mbox.
metoo
If your login appears as a recipient, do not delete it
from the list. Default is nometoo.
LISTER=shell-command
The command (and options) to use when listing the con-
tents of the folder directory. The default is ls(1).
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 (i.e., one hop away).
outfolder
Causes the files used to record outgoing messages to be
located in the directory specified by the folder vari-
able unless the path name is absolute. Default is
nooutfolder. See folder above and the Save, Copy,
15
mailx(1) USER COMMANDS mailx(1)
followup, and Followup commands.
page Used with the pipe command to insert a form feed after
each message sent through the pipe. Default is nopage.
PAGER=shell-command
The command to use as a filter for paginating output.
This can also be used to specify the options to be
used. Default is pg(1).
prompt=string
Set the command mode prompt to string. Default is
``? ''.
quiet
Refrain from printing the opening message and version
when entering mailx. Default is noquiet.
record=filename
Record all outgoing mail in filename. Disabled by
default. See also outfolder above. If you have the
record and outfolder variables set but the folder vari-
able not set, messages are saved in +filename instead
of filename.
save Enable saving of messages in dead.letter on interrupt
or delivery error. See DEAD for a description of this
file. Enabled by default.
screen=number
Sets the number of lines in a screen-full of headers
for the headers command. It must be a positive number.
sendmail=shell-command
Alternate command for delivering messages. Default is
/usr/bin/rmail.
sendwait
Wait for background mailer to finish before returning.
Default is nosendwait.
SHELL=shell-command
The name of a preferred command interpreter. Default
is sh(1).
showto
When displaying the header summary and the message is
from you, print the recipient's name instead of the
author's name.
sign=string
The variable inserted into the text of a message when
16
mailx(1) USER COMMANDS mailx(1)
the ~a (autograph) command is given. No default [see
also ~i (TILDE ESCAPES)].
Sign=string
The variable inserted into the text of a message when
the ~A command is given. No default [see also ~i
(TILDE ESCAPES)].
toplines=number
The number of lines of header to print with the top
command. Default is 5.
VISUAL=shell-command
The name of a preferred screen editor. Default is
vi(1).
FILES
$HOME/.mailrc personal start-up file
$HOME/mbox secondary storage file
/var/mail/* post office directory
/usr/share/lib/mailx/mailx.help* help message files
/etc/mail/mailx.rc optional global start-up file
/tmp/R[emqsx]* temporary files
SEE ALSO
ls(1), mail(1), pg(1).
NOTES
The -h and -r options can be used only if mailx is using a
delivery program other than /usr/bin/rmail.
Where shell-command is shown as valid, arguments are not
always allowed. Experimentation is recommended.
Internal variables imported from the execution environment
cannot be unset.
The full internet addressing is not fully supported by
mailx. The new standards need some time to settle down.
Attempts to send a message having a line consisting only of
a ``.'' are treated as the end of the message by mail(1)
(the standard mail delivery program).
17