mail [-tw] [-m message_type] recipient...
rmail [-tw] [-m message_type] recipient...
mail [-ehpPqr] [-f file]
mail [-x debug_level] [other_mail_options] recipient...
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.
The following command-line arguments affect sending mail:
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.
The following command-line arguments affect reading mail:
An exit status of 0 is returned if the user has mail. Otherwise, an exit status of 1 is returned.
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.
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:
<new-line>,+, or n
d, or dp
m [ persons ]
q, or Control-d
r [ users ]
s [ files ]
u [ n ]
w [ files ]
y [ files ]
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.
The following command-line arguments cause mail to provide 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.
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:
The default is /nodelivery/return. If contradictory options are used, the first is recognized and later, conflicting, terms are ignored.
The following operand is supported for sending mail:
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).
See environ(5) for descriptions of the following environment variables that affect the execution of mail: LC_CTYPE, LC_MESSAGES, and NLSPATH.
The following exit values are returned:
See attributes(5) for descriptions of the following attributes:
chmod(1), csh(1), login(1), mailx(1), uucp(1C), uuencode(1C), vacation(1), write(1), attributes(5), environ(5), largefile(5)
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.