mailx(1) mailx(1)
NAME
mailx - interactive message processing system
SYNOPSIS
mailx [-d] [-e] [-f [filename]] [-F] [-h number] [-H] [-i]
[-n] [-N] [-r address] [-s subject] [-u user] [-U]
[name ...]
DESCRIPTION
The command mailx provides a flexible environment 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.
Incoming mail is stored in a standard file for each user,
called the system mailbox for that user, usually named
/usr/mail/name. (You may alter this default by using the -f
flag option, where the filename argument is the intended new
name.) 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 named mbox and is
normally located in the user's HOME directory (see
ENVIRONMENT VARIABLES, below, for a description of this
file). Messages remain in this file until forcibly removed.
On the command line, flag options start with a hyphen (-)
and any other arguments are taken to be destinations
(recipients). If no recipients are specified, mailx will
attempt to read messages from the mailbox. Flag options
are:
-d Turn on debugging output. Neither
particularly interesting nor
recommended.
-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
record variable, if set (see ENVIRONMENT
VARIABLES).
Page 1 (last mod. 1/16/87)
mailx(1) mailx(1)
-h number The number of network hops made so far.
This is provided for network software to
avoid infinite delivery loops.
-H Print header summary only.
-i Ignore interrupts. See also ignore in
ENVIRONMENT VARIABLES.
-n Do not initialize from the system
default Mailx.rc file.
-N Do not print initial header summary.
-r address Pass address to network delivery
software. All tilde commands are
disabled.
-s subject Set the Subject header field to subject.
-u user Read user's mailbox. This is only
effective if user's mailbox is not
read-protected.
-U Convert uucp style addresses to internet
standards. Overrides the conv
environment variable.
When reading mail, mailx is in command mode. A header
summary 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 the subject is printed. As the message is typed,
mailx will read the message and store it in a temporary
file. Commands may be entered by beginning a line with the
escape character (tilde (~) by default) followed by a single
command letter and optional arguments. See TILDE ESCAPES,
below, for a summary of these commands.
At any time, the behavior of mailx is governed by a set of
environment variables. These are flags and valued
parameters which are set and cleared via the se (set) and
uns (unset) commands. 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
addressing. 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
Page 2 (last mod. 1/16/87)
mailx(1) mailx(1)
interface with any program that reads the standard input,
such as lp(1) for recording outgoing mail on paper. Alias
groups are set by the a (alias) command (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, p (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
> in the header summary. Many commands take an optional
list of messages (msglist) to operate on, which defaults to
the current message. A msglist is a list of message
specifications separated by spaces, which may include:
n Message number n.
. The current message.
^ The first undeleted message.
$ The last message.
* 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. Filenames, where expected,
are expanded via the normal shell conventions (see sh(1)).
Special characters are recognized by certain commands and
are documented with the commands below.
At start-up time, mailx reads commands from a system-wide
file (/usr/lib/mailx/mailx.rc) to initialize certain
parameters, then from a private start-up file
($HOME/.mailrc) for personalized variables. Most regular
commands are legal inside start-up files, the most common
use being to set up initial display options and alias lists.
Page 3 (last mod. 1/16/87)
mailx(1) mailx(1)
The following commands are not legal in the start-up file:
!, C (Copy), e (edit), fo (followup), F (Followup),
ho (hold), m (mail), pre (preserve), r (reply), R (Reply),
sh (shell), and v (visual). Any errors in the start-up file
cause the remaining lines in the file to be ignored.
COMMANDS
The following is a complete list of mailx commands:
!shell-command Escape to the shell. See SHELL
(ENVIRONMENT VARIABLES).
# comment Null command (comment). This may be
useful in .mailrc files.
= Print the current message number.
? Prints a summary of commands.
a alias name...
g alias name... Declare an alias (a, or group g) for the
given names. The names will be
substituted when alias is used as a
recipient. Useful in the .mailrc file.
alt 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, alt prints the current list of
alternate names. See also allnet
(ENVIRONMENT VARIABLES).
cd [directory]
ch [directory] Change directory. If directory is not
specified, $HOME is used.
c [filename]
c [msglist] filename
Copy messages to the file without marking
the messages as saved. Otherwise
equivalent to the s (save) command.
C [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 S (Save) command.
d [msglist] Delete messages from the mailbox. If
autoprint is set, the next message after
the last one deleted is printed (see
Page 4 (last mod. 1/16/87)
mailx(1) mailx(1)
ENVIRONMENT VARIABLES).
di [header-file...]
ig [header-file...]
Suppress printing of (discard or ignore)
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 P (Print)
and T (Type) commands override this
command.
dp [msglist]
dt [msglist] Delete the specified messages from the
mailbox and print the next message after
the last one deleted. Roughly equivalent
to a d (delete) command followed by a
p (print) command.
ec string ... Echo the given strings (like echo(1)).
e [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).
ex
x Exit from mailx, without changing the
mailbox. No messages are saved in the
mbox (see also q (quit)).
fi [filename]
fold [filename] Quit from the current file of messages and
read in the specified file (folder).
Several special characters are recognized
when used as filenames, with the following
substitutions:
% 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).
fo [message] Respond to (follow up on) a message,
recording the response in a file whose
name is derived from the author of the
Page 5 (last mod. 1/16/87)
mailx(1) mailx(1)
message. Overrides the record variable,
if set. See also the F (Followup),
S (Save), and C (Copy) commands and
outfolder (ENVIRONMENT VARIABLES).
F [msglist] Respond to (Follow up on) 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 message and the response is
recorded in a file whose name is derived
from the author of the first message. See
also the fo (followup), S (Save), and
C (Copy) commands and outfolder
(ENVIRONMENT VARIABLES).
f [msglist] Prints the header summary (``from''
portion) for the specified messages.
g alias name...
a alias name... Declare an alias (a, or group, g) for the
given names. The names will be
substituted when alias is used as a
recipient. Useful in the .mailrc file.
h [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.
hel Prints a summary (help list) of commands.
ho [msglist]
pre [msglist] Holds (Preserves) the specified messages
in the mailbox.
i s|r
mail-commands
el
mail-commands
en Conditional execution, where s will
execute following mail-commands, up to an
el (else) or en (endif), if the program is
in send mode (i.e., not receiving or
reading mail), and r causes the mail-
commands to be executed only in receive
mode. Useful in the .mailrc file.
ig header-file ...
di header-file ...
Suppress printing of (ignore or discard)
Page 6 (last mod. 1/16/87)
mailx(1) mailx(1)
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 P (Print)
and T (Type) commands override this
command.
l Print (list) all commands available. No
explanation is given.
m name ... Mail a message to the specified users.
mb [msglist] Arrange for the given messages to end up
in the standard mbox save file when mailx
terminates normally. See mbox
(ENVIRONMENT VARIABLES) for a description
of this file. See also the ex (exit) and
q (quit) commands.
n [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.
pi [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
formfeed character is inserted after each
message (see ENVIRONMENT VARIABLES).
pre [msglist]
ho [msglist] Preserve (Hold) the specified messages in
the mailbox.
P [msglist]
T [msglist] Print (Type) the specified messages on the
screen, including all header fields.
Overrides suppression of fields by the
ig (ignore) command.
Page 7 (last mod. 1/16/87)
mailx(1) mailx(1)
p [msglist]
t [msglist] Print (type) the specified messages. If
crt is set, the messages 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).
q Exit (Quit) from mailx, storing messages
that were read in mbox and unread messages
in the mailbox. Messages that have been
saved explicitly in a file are deleted.
R [msglist] Respond to the author of each message in
the msglist. The subject line is taken
from the first message. If record is set
to a filename, the response is saved at
the end of that file (see ENVIRONMENT
VARIABLES).
r [message] Reply to the specified message, including
all other recipients of the message. If
record is set to a filename, the response
is saved at the end of that file (see
ENVIRONMENT VARIABLES).
S [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 C (Copy), fo (followup), and
F (Followup) commands and outfolder
(ENVIRONMENT VARIABLES).
s [filename]
s [msglist] filename
Save the specified messages in the given
file. The file is created if it does not
exist. The message is deleted from the
mailbox when mailx terminates unless
keepsave is set (see also ENVIRONMENT
VARIABLES and the ex (exit) and q (quit)
commands).
se
se name
se name=string
se name=number Define (set) a variable called name. The
variable may be given a null, string, or
numeric value. se by itself prints all
Page 8 (last mod. 1/16/87)
mailx(1) mailx(1)
defined variables and their values. See
ENVIRONMENT VARIABLES for detailed
descriptions of the mailx variables.
sh Invoke an interactive shell (see also
SHELL (ENVIRONMENT VARIABLES)).
si [msglist] Print the size in characters of the
specified messages.
so filename Read (source) commands from the given file
and return to command mode.
to [msglist] Print the top few lines of the specified
messages. If the toplines variable is
set, it is taken as the number of lines to
print (see ENVIRONMENT VARIABLES). The
default is 5.
tou [msglist] Touch the specified messages. If any
message in msglist is not specifically
saved in a file, it will be placed in the
mbox upon normal termination. See
ex (exit) and q (quit).
T [msglist]
P [msglist] Print (Type) the specified messages on the
screen, including all header fields.
Overrides suppression of fields by the
ig (ignore) command.
t [msglist]
p [msglist] Print (type) the specified messages. If
crt is set, the messages 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).
u [msglist] Restore (undelete) the specified deleted
messages. Will restore only those
messages deleted in the current mail
session. If autoprint is set, the last
message of those restored is printed (see
ENVIRONMENT VARIABLES).
uns name ... Cause the specified variables to be erased
(unset). If the variable was imported from
the execution environment (i.e., a shell
variable) then it cannot be erased.
Page 9 (last mod. 1/16/87)
mailx(1) mailx(1)
ve Prints the current version and release
date.
v [msglist] Edit the given messages with a (visual)
screen editor. The messages are placed in
a temporary file and the VISUAL variable
is used to get the name of the editor (see
ENVIRONMENT VARIABLES).
w [msglist] filename
Write the given messages on the specified
file, minus the header and trailing blank
line. Otherwise equivalent to the
s (save) command.
x
ex Exit from mailx, without changing the
mailbox. No messages are saved in the
mbox (see also q (quit)).
z[+|-] Scroll the header display forward or
backward one screenful. 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 escape character (tilde (~) by
default). 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 name ... Add the names to the blind carbon copy
(bcc) list.
Page 10 (last mod. 1/16/87)
mailx(1) mailx(1)
~c name ... 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.
~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 '~i Sign.'
~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 message 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 name ... Add the given names to the To list.
~v Invoke a preferred (visual) screen
Page 11 (last mod. 1/16/87)
mailx(1) mailx(1)
editor on the partial message. See also
VISUAL (ENVIRONMENT VARIABLES).
~w filename Write the partial message onto the given
file, without the header.
~x Exit as with ~q except the message is
not saved in the DEAD file.
~| 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.
ENVIRONMENT VARIABLES
The following are environment variables taken from the
execution 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 se (set) command at any time. The unset (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
alt (alternates) command and the metoo variable.
append Upon termination, append messages to the end of
mbox file instead of at the top of mbox. Default
is noappend (i.e., by default mailx saves messages
at the top of mbox on exit).
askcc Prompt for the Cc list after message is entered.
Default is noaskcc.
asksub Prompt for subject if it is not specified on the
command line with the -s flag option. Enabled by
default.
autoprint Enable automatic printing of messages after
d (delete) and u (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.
Page 12 (last mod. 1/16/87)
mailx(1) mailx(1)
cmd=shell-command
Set the default command for the pi (pipe) command.
No default value.
conv=conversion
Convert uucp addresses to the specified address
style. The only valid conversion now is internet,
which requires a mail delivery program conforming
to the RFC822 standard for electronic mail
addressing. Conversion is disabled by default.
See also sendmail and the -U flag 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 or delivery
errors. 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 e (edit) or ~e command
is used. Default is ed(1).
escape=c Substitute c for the ~ escape character.
folder=directory
The directory for saving standard mail files.
User-specified filenames beginning with a plus (+)
are expanded by preceding the filename with this
directory name to obtain the real filename. If
directory does not start with a slash (/), $HOME
is prefixed to it. In order to use the plus (+)
construct on a mailx command line, folder must be
an exported sh environment variable. There is no
default for the folder variable. See also
outfolder, below.
header Enable printing of the header summary when
entering mailx. Enabled by default.
hold Preserve all messages that are read in the mailbox
instead of putting them in the standard mbox save
Page 13 (last mod. 1/16/87)
mailx(1) mailx(1)
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 in which to save messages
that have been read. The x (exit) 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 flag options) to use when listing
the contents 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 normally are forced to be relative to
the originating author's machine for the response.
This flag option 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 Cause the files used to record outgoing messages
to be located in the directory specified by the
folder variable, unless the pathname is absolute.
Default is nooutfolder. See folder above and the
S (Save), C (Copy), fo (followup), and
F (Followup) commands.
page Used with the pi (pipe) command to insert a
formfeed after each message sent through the pipe.
Default is nopage.
Page 14 (last mod. 1/16/87)
mailx(1) mailx(1)
PAGER=shell-command
The command to use as a filter for paginating
output. This can also be used to specify the flag
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.
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 screenful of headers
for the h (headers) command.
sendmail=shell-command
Alternate command for delivering messages.
Default is mail(1).
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 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
to (top) command. Default is 5.
Page 15 (last mod. 1/16/87)
mailx(1) mailx(1)
VISUAL=shell-command
The name of a preferred screen editor. Default is
vi(1).
FILES
/usr/bin/mailx
/usr/lib/mailx
$HOME/.mailrc personal start-up file
$HOME/mbox secondary storage file
/usr/mail/* post office directory
/usr/lib/mailx/mailx.help*
help message files
/usr/lib/mailx/mailx.rc
global start-up file
/tmp/R[emqsx]* temporary files
SEE ALSO
mail(1), pg(1), ls(1),
Oreo Getting Started.
BUGS
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 (uns).
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).
Page 16 (last mod. 1/16/87)