MAIL(1)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 indi‐
cators 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 fol‐
lowed 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 char‐
acters 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 con‐
tent, 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 wait‐
ing for the completion of the remote transfer pro‐
gram.
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 secu‐
rity 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 trans‐
port 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 adminis‐
trator 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 sys‐
tem 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. Other‐
wise, 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 mail‐
file.
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 char‐
acters. Otherwise, mail issues a warning statement about the message
having binary content and not display the content. This can be overrid‐
den 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 ses‐
sion.
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 mes‐
sage.
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 dele‐
tion.
m [ persons ]
Mail (and delete) the current message to the
named persons.
n
Print message number n.
p
Print current message again, overriding any indi‐
cations 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 indi‐
cated. 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 per‐
petuate 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 infor‐
mation.
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 ver‐
boseness 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 eso‐
teric 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(5) 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(5) 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 ALSOchmod(1), csh(1), login(1), mailx(1), uucp(1C), uuencode(1C), vaca‐
tion(1), write(1), attributes(5), environ(5), largefile(5)
Solaris Advanced User's Guide
NOTES
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.
Jul 24, 2008 MAIL(1)