MAIL(1) User Commands MAIL(1)
NAME
mail, rmail - read mail or send mail to users
SYNOPSIS
Sending Mail
mail [
-tw] [
-m message_type]
recipient...
rmail [
-tw] [
-m message_type]
recipient...
Reading Mail
mail [
-ehpPqr] [
-f file]
Debugging
mail [
-x debug_level] [
other_mail_options]
recipient...
DESCRIPTION
A
recipient is usually a domain style address ("
user@
machine") or a
user name recognized by
login(1). When
recipients are named,
mail assumes a message is being sent. It reads from the standard input up
to an end-of-file (Control-d) or, if reading from a terminal device,
until it reads a line consisting of just a period. When either of
those indicators is received,
mail adds the
letter to the
mailfile for each
recipient.
A
letter is composed of some
header lines followed by a blank line
followed by the
message content. The
header lines section of the
letter consists of one or more UNIX postmarks:
From sender date_and_time [
remote from remote_system_name]
followed by one or more standardized message header lines of the
form:
keyword-name: [
printable text]
where
keyword-name is comprised of any printable, non-whitespace
characters other than colon (`
:'). A
MIME-version: header line
indicates that the message is formatted as described in RFC 2045. A
Content-Length: header line, indicating the number of bytes in the
message content, is always present unless the letter consists of only
header lines with no message content. A
Content-Type: header line
that describes the type of the
message content (such as text/plain,
application/octet-stream, and so on) is also present, unless the
letter consists of only header lines with no message content. Header
lines may be continued on the following line if that line starts with
white space.
OPTIONS
Sending Mail
The following command-line arguments affect sending mail:
-m message_type A
Message-Type: line is added to the message
header with the value of
message_type.
-t A
To: line is added to the message header for each
of the intended
recipients.
-w A letter is sent to a remote recipient without
waiting for the completion of the remote transfer
program.
If a letter is found to be undeliverable, it is returned to the
sender with diagnostics that indicate the location and nature of the
failure. If
mail is interrupted during input, the message is saved in
the file
dead.letter to allow editing and resending.
dead.letter is
always appended to, thus preserving any previous contents. The
initial attempt to append to (or create)
dead.letter is in the
current directory. If this fails,
dead.letter is appended to (or
created in) the user's login directory. If the second attempt also
fails, no
dead.letter processing is done.
rmail only permits the sending of mail;
uucp(1C) uses
rmail as a
security precaution. Any application programs that generate mail
messages should be sure to invoke
rmail rather than
mail for message
transport and/or delivery.
If the local system has the Basic Networking Utilities installed,
mail can be sent to a recipient on a remote system. There are
numerous ways to address mail to recipients on remote systems
depending on the transport mechanisms available to the local system.
The two most prevalent addressing schemes are Domain-style and UUCP-
style.
Domain-style addressing Remote recipients are specified by
appending an `
@' and domain (and possibly
sub-domain) information to the recipient
name (such as
user@sf.att.com). (The local
system administrator should be consulted
for details on which addressing
conventions are available on the local
system.)
UUCP-style addressing Remote recipients are specified by
prefixing the recipient name with the
remote system name and an exclamation
point, such as
sysa!user. If
csh(1) is the
default shell,
sysa\!user should be used.
A series of system names separated by
exclamation points can be used to direct a
letter through an extended network (such
as
sysa!sysb!sysc!user or
sysa\!sysb\!sysc\!user).
Reading Mail
The following command-line arguments affect reading mail:
-e Test for the presence of mail.
mail prints nothing.
An exit status of
0 is returned if the user has mail.
Otherwise, an exit status of
1 is returned.
-E Similar to
-e, but tests only for the presence of
new mail.
An exit status of
0 is returned if the user has new
mail to read, an exit status of
1 is returned if the
user has no mail, or an exit status of
2 is returned
if the user has mail which has already been read.
-h A window of headers are initially displayed rather than
the latest message. The display is followed by the
? prompt.
-p All messages are printed without prompting for
disposition.
-P All messages are printed with
all header lines displayed,
rather than the default selective header line display.
-q mail terminates after interrupts. Normally an interrupt
causes only the termination of the message being printed.
-r Messages are printed in first-in, first-out order.
-f file mail uses
file (such as
mbox) instead of the default
mailfile.
mail, unless otherwise influenced by command-line arguments, prints a
user's mail messages in last-in, first-out order. The default mode
for printing messages is to display only those header lines of
immediate interest. These include, but are not limited to, the UNIX
From and
>From postmarks,
From:,
Date:,
Subject:, and
Content-Length: header lines, and any recipient header lines such as
To:,
Cc:,
Bcc:,
and so forth. After the header lines have been displayed,
mail displays the contents (body) of the message only if it contains no
unprintable characters. Otherwise,
mail issues a warning statement
about the message having binary content and
not display the content.
This can be overridden by means of the
p command.
For each message, the user is prompted with a
? and a line is read
from the standard input. The following commands are available to
determine the disposition of the message:
# Print the number of the current message.
- Print previous message.
<new-line>,+, or
n Print the next message.
!command Escape to the shell to do
command.
a Print message that arrived during the
mail session.
d, or
dp Delete the current message and print the next
message.
d n Delete message number
n. Do not go on to next
message.
dq Delete message and quit
mail.
h Display a window of headers around current
message.
hn Display a window of headers around message
number
n.
h a Display headers of all messages in the user's
mailfile.
h d Display headers of messages scheduled for
deletion.
m [
persons ]
Mail (and delete) the current message to the
named
persons.
n Print message number
n.
p Print current message again, overriding any
indications of binary (that is, unprintable)
content.
P Override default brief mode and print current
message again, displaying all header lines.
q, or Control-d
Put undeleted mail back in the
mailfile and
quit
mail.
r [
users ]
Reply to the sender, and other
users, then
delete the message.
s [
files ]
Save message in the named
files (
mbox is
default) and delete the message.
u [
n ]
Undelete message number
n (default is last
read).
w [
files ]
Save message contents, without any header
lines, in the named
files (
mbox is default) and
delete the message.
x Put all mail back in the
mailfile unchanged and
exit
mail.
y [
files ]
Same as
-w option.
? Print a command summary.
When a user logs in, the presence of mail, if any, is usually
indicated. Also, notification is made if new mail arrives while using
mail.
The permissions of
mailfile can be manipulated using
chmod(1) in two
ways to alter the function of
mail. The other permissions of the file
can be read-write (
0666), read-only (
0664), or neither read nor write
(
0660) to allow different levels of privacy. If changed to other than
the default (mode
0660), the file is preserved even when empty to
perpetuate the desired permissions. (The administrator can override
this file preservation using the
DEL_EMPTY_MAILFILE option of
mailcnfg.)
The group
ID of the mailfile must be
mail to allow new messages to be
delivered, and the mailfile must be writable by group
mail.
Debugging
The following command-line arguments cause
mail to provide debugging
information:
-x debug_level mail creates a trace file containing debugging
information.
The
-x option causes
mail to create a file named
/tmp/MLDBGprocess_id that contains debugging information relating to how
mail processed
the current message. The absolute value of
debug_level controls the
verboseness of the debug information.
0 implies no debugging. If
debug_level is greater than
0, the debug file is retained
only if
mail encountered some problem while processing the message. If
debug_level is less than
0, the debug file is always be retained. The
debug_level specified via
-x overrides any specification of
DEBUG in
/etc/mail/mailcnfg. The information provided by the
-x option is
esoteric and is probably only useful to system administrators.
Delivery Notification
Several forms of notification are available for mail by including one
of the following lines in the message header.
Transport-Options: [
/options ]
Default-Options: [
/options ]
>To: recipient [
/options ]
Where the "/
options" can be one or more of the following:
/delivery Inform the sender that the message was successfully
delivered to the
recipient's mailbox.
/nodelivery Do not inform the sender of successful deliveries.
/ignore Do not inform the sender of failed deliveries.
/return Inform the sender if mail delivery fails. Return the
failed message to the sender.
/report Same as
/return except that the original message is
not returned.
The default is
/nodelivery/return. If contradictory options are used,
the first is recognized and later, conflicting, terms are ignored.
OPERANDS
The following operand is supported for sending mail:
recipient A domain style address ("
user@
machine") or user login
name recognized by
login(1).
USAGE
See
largefile(7) for the description of the behavior of
mail and
rmail when encountering files greater than or equal to 2 Gbyte ( 2^31
bytes).
ENVIRONMENT VARIABLES
See
environ(7) for descriptions of the following environment
variables that affect the execution of
mail:
LC_CTYPE,
LC_MESSAGES,
and
NLSPATH.
TZ Determine the timezone used with date and time strings.
EXIT STATUS
The following exit values are returned:
0 Successful completion when the user had mail.
1 The user had no mail or an initialization error occurred.
>1 An error occurred after initialization.
FILES
dead.letter unmailable text
/etc/passwd to identify sender and locate
recipients
$HOME/mbox saved mail
$MAIL variable containing path name of
mailfile /tmp/MLDBG*
debug trace file
/var/mail/*.lock lock for mail directory
/var/mail/:saved directory for holding temp files to prevent loss
of data in the event of a system crash
/var/mail/user incoming mail for
user; that is, the
mailfile /var/tmp/ma*
temporary file
SEE ALSO
chmod(1),
csh(1),
login(1),
mailx(1),
vacation(1),
write(1),
uucp(1C),
uuencode(1C),
attributes(7),
environ(7),
largefile(7) Solaris Advanced User's GuideNOTES
The interpretation and resulting action taken because of the header
lines described in the Delivery Notifications section only occur if
this version of
mail is installed on the system where the delivery
(or failure) happens. Earlier versions of
mail might not support any
types of delivery notification.
Conditions sometimes result in a failure to remove a lock file.
After an interrupt, the next message might not be printed. Printing
can be forced by typing a
p.
May 17, 2020 MAIL(1)