MAILX(1) RISC/os Reference Manual 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 will only work 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 VARI-
ABLES) 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 will attempt to read
messages from the mailbox. Command line options are:
-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 ENVIRON-
MENT VARIABLES).
-h number The number of network "hops" made so far.
Printed 11/19/92 Page 1
MAILX(1) RISC/os Reference Manual MAILX(1)
This is provided for network software to
avoid infinite delivery loops. (See
addsopt under ENVIRONMENT VARIABLES)
-H Print header summary only.
-i Ignore interrupts. See also "ignore"
(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 dis-
abled. (See addsopt under ENVIRONMENT
VARIABLES)
-s subject Set the Subject header field to subject.
-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. (See addsopt under
ENVIRONMENT VARIABLES)
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
the subject is printed. (A "subject" longer than 1024 char-
acters will cause mailx to dump core) As the message is
typed, mailx will read the message and store it in a tem-
porary 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 summary 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 to 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
Page 2 Printed 11/19/92
MAILX(1) RISC/os Reference Manual MAILX(1)
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, 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.
* 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 (/usr/lib/mailx/mailx.rc) to ini-
tialize certain parameters, then from a private start-up
file ($HOME/.mailrc) for personalized variables. With the
exceptions 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
Printed 11/19/92 Page 3
MAILX(1) RISC/os Reference Manual MAILX(1)
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
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 will
be substituted when alias is used as a recipient. Use-
ful 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.
Page 4 Printed 11/19/92
MAILX(1) RISC/os Reference Manual MAILX(1)
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.
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 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).
Printed 11/19/92 Page 5
MAILX(1) RISC/os Reference Manual MAILX(1)
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]
Prints the header summary for the specified messages.
group alias name ...
alias alias name ...
Declare an alias for the given names. The names will
be substituted when alias is used as a recipient. Use-
ful 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 will execute 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
Page 6 Printed 11/19/92
MAILX(1) RISC/os Reference Manual MAILX(1)
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.
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
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.
Printed 11/19/92 Page 7
MAILX(1) RISC/os Reference Manual MAILX(1)
print [msglist]
type [msglist]
Print 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 speci-
fied 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
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"
(ENVIRONMENT VARIABLES).
save [filename]
save [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 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
Page 8 Printed 11/19/92
MAILX(1) RISC/os Reference Manual MAILX(1)
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
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 will be
placed in the mbox 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
messages longer than the number of lines specified by
the "crt" variable are paged through the command speci-
fied 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).
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.
Printed 11/19/92 Page 9
MAILX(1) RISC/os Reference Manual MAILX(1)
version
Prints the current version and release date.
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
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 spe-
cial 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).
Page 10 Printed 11/19/92
MAILX(1) RISC/os Reference Manual MAILX(1)
~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" (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 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 ...
Printed 11/19/92 Page 11
MAILX(1) RISC/os Reference Manual MAILX(1)
Set the subject line to string.
~t name ...
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 partial message onto 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.
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.
addsopt
Enabled by default. If /bin/mail is not being used as
the deliverer, noaddsopt should be specified. (See
WARNINGS below)
allnet
All network names whose last component (login name)
match are treated as identical. This causes the
Page 12 Printed 11/19/92
MAILX(1) RISC/os Reference Manual MAILX(1)
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 message is entered.
Default is noaskcc.
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.
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 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.
Printed 11/19/92 Page 13
MAILX(1) RISC/os Reference Manual MAILX(1)
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" vari-
able. 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 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.
Page 14 Printed 11/19/92
MAILX(1) RISC/os Reference Manual MAILX(1)
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"
variable unless the path name is absolute. Default is
nooutfolder. See "folder" above and the Save, Copy,
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.
Printed 11/19/92 Page 15
MAILX(1) RISC/os Reference Manual MAILX(1)
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.
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 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
/usr/mail/*
post office directory
/usr/lib/mailx/mailx.help*
Page 16 Printed 11/19/92
MAILX(1) RISC/os Reference Manual MAILX(1)
help message files
/usr/lib/mailx/mailx.rc
optional global start-up file
/tmp/R[emqsx]*
temporary files
SEE ALSO
ls(1), mail(1), pg(1).
WARNINGS
The -h, -r and -U options can be used only if mailx is built
with a delivery program other than /bin/mail.
ERRORS
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).
Printed 11/19/92 Page 17