Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ rmail(1) — SunOS 5.4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

chmod(1)

login(1)

mailx(1)

vacation(1)

write(1)

uucp(1C)

environ(5)

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 filename ]

Debugging

mail [ −x debug_level ] [ other_mail_options ] recipient...

mail [ −T mailsurr_file ] recipient...

AVAILABILITY

SUNWcsu

DESCRIPTION

A recipient is usually 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 (CTRL-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 Content-Length: header line, indicating the number of bytes in the message content will always be 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, binary, multipart, etc.) will also be 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 will be in the current directory.  If this fails, dead.letter will be appended to (or created in) the user’s login directory.  If the second attempt also fails, no dead.letter processing will be 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 may 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 UUCP-style and Domain-style.  With 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 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 ).  With 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.) 

Reading Mail

The following command-line arguments affect reading mail:

−e Mail is not printed.  An exit value of 0 is returned if the user has mail; otherwise, an exit value of 1 is returned. 

−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 filename mail uses filename (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 will display the contents (body) of the message only if it contains no unprintable characters.  Otherwise, mail will issue a warning statement about the message having binary content and not display the content.  (This may be overridden via the p command.  See below.) 

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. 

h n 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 person(s). 

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 CTRL-D Put undeleted mail back in the mailfile and quit mail. 

r [ users ] Reply to the sender, and other user(s), then delete the message.

s [ files ] Save message in the named file(s) (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 save. 

?  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 may be manipulated using chmod in two ways to alter the function of mail.  The other permissions of the file may 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 will be preserved even when empty to perpetuate the desired permissions.  (The administrator may 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:

−T mailsurr_file
mail displays how it will parse and interpret the mailsurr file. 

−x debug_level mail creates a trace file containing debugging information. 

The −T option requires an argument that will be taken as the pathname of a test mailsurr file.  If NULL (as in −T ""), the system mailsurr file will be used.  To use, type ’mail −T test_file recipient’ and some trivial message (like "testing"), followed by a line with either just a dot (‘.’) or a CTRL-D.  The result of using the −T option will be displayed on standard output and show the inputs and resulting transformations as mailsurr is processed by the mail command for the indicated recipient.  Mail messages will never actually be sent or delivered when the −T option is used. 

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.  Zero implies no debugging.  If debug_level is greater than zero, the debug file will be retained only if mail encountered some problem while processing the message.  If debug_level is less than zero the debug file will 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.  The output produced by the −x option is a superset of that provided by the −T option. 

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” may 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 unsuccessful 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 will be recognized and later, conflicting, terms will be ignored. 

ENVIRONMENT

If any of the LC_∗ variables ( LC_CTYPE, LC_MESSAGES, LC_TIME, LC_COLLATE, LC_NUMERIC, and LC_MONETARY ) (see environ(5)) are not set in the environment, the operational behavior of mail for each corresponding locale category is determined by the value of the LANG environment variable.  If LC_ALL is set, its contents are used to override both the LANG and the other LC_∗ variables.  If none of the above variables is set in the environment, the "C" (U.S. style) locale determines how mail behaves. 

LC_CTYPE
Determines how mail handles characters. When LC_CTYPE is set to a valid value, mail can display and handle text and filenames containing valid characters for that locale.  mail can display and handle Extended Unix Code (EUC) characters where any individual character can be 1, 2, or 3 bytes wide.  mail can also handle EUC characters of 1, 2, or more column widths. In the "C" locale, only characters from ISO 8859-1 are valid. 

FILES

dead.letter unmailable text

/etc/passwd to identify sender and locate recipients

/etc/mail/mailsurr routing / name translation information

/etc/mail/mailcnfg initialization information

$HOME/mbox saved mail

$MAIL variable containing path name of mailfile

/tmp/ma∗ temporary file

/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

SEE ALSO

chmod(1), login(1), mailx(1), vacation(1), write(1), uucp(1C), environ(5)

Solaris Advanced User’s Guide

NOTES

The interpretation and resulting action taken because of the header lines described in the Delivery Notifications section above will only occur if this version of mail is installed on the system where the delivery (or failure) happens.  Earlier versions of mail may not support any types of delivery notification. 

Conditions sometimes result in a failure to remove a lock file. 

After an interrupt, the next message may not be printed; printing may be forced by typing a p. 

SunOS 5.4  —  Last change: 04 Feb 1994

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026