term% cat index.txt MAIL(1) General Commands Manual MAIL(1)
NAME
mail, edmail, sendmail, seemail, aliasmail, smtp, smtpd, to, vwhois,
vismon - mail commands
SYNOPSIS
mail [ arg ... ]
upas/edmail [ -cmpre ] [ -[fF] mfile ]
upas/sendmail [ -xr# ] person ...
upas/to [ -x# ]
seemail [ -as ] [ -u user ] [ -f file ] [ -r reminders ]
upas/aliasmail name ...
smtp [ -fdu ] [ -hhost ] [ -ggateway ] [ .domain ] address sender rcpt-
list
smtpd [ -d ]
vwhois people ...
vismon system
DESCRIPTION
Mail
Mail invokes edmail -m when no persons appear on the command line. It
invokes sendmail otherwise.
Mailbox Editing
Edmail edits a mailbox. The default mailbox is /mail/box/user‐
name/mbox. The -f and -F command line options and the s and S editing
commands specify an alternate mailbox. Unrooted path names are inter‐
preted relative to /mail/box/username for -f and s and relative to the
current directory for -F and S. If the mfile argument is omitted, the
name defaults to stored.
The options for edmail are:
-c Create a mailbox.
-r Reverse: print mail in first-in, first-out order.
-p Print all the mail messages without prompting for commands.
-m Use a manual style of interface, that is, print no messages un‐
less directed to.
-f mfile
Read messages from the specified file (see above) instead of the
default mailbox.
-F mfile
same as -f with different starting point for relative paths (see
above).
-e Check silently if there is anything in the mailbox; return zero
(true) if so, non-zero otherwise.
Edmail prints messages one at a time, prompting between messages. Af‐
ter printing a prompt edmail reads a line from the standard input to
direct disposition of the message. Commands, as in ed(1), are of the
form ‘[range] command [arguments]'. The command is applied to each
message in the (optional) range addressed by message number and/or reg‐
ular expressions in the style of ed(1). A regular expression in
slashes searches among header (postmark) lines; an expression in per‐
cent signs searches on message content.
address to indicate a single message header
address,address
to indicate a range of contiguous message headers
g/expression/
to indicate all message headers matching the regular expres‐
sion.
The commands are:
b Print the headers for the next ten messages.
d Mark message to be deleted upon exiting edmail.
h Print the disposition, size in characters, and header line
of the message.
m person ...
Mail the message to the named persons.
M person ...
Same as m except that lines typed on the terminal (termi‐
nated by EOT) are prefixed to the message.
p Print message. An interrupt stops the printing.
r Reply to the sender of the message.
R Like but with the message appended to the reply.
s mfile (Save) Append the message to the specified mailbox (see
above).
S mfile Same as s with different starting point for relative paths
(see above).
q Put undeleted mail back in the mailbox and stop.
EOT (control-D)
Same as
w file Same as s with the mail header line(s) stripped.
W file Same as w with different starting point for relative paths
(see above).
u Remove mark for deletion.
x Exit, without changing the mailbox file.
? Print a command summary.
|command Run the command with the message as standard input.
!command Escape to the shell to do command.
= Print the number of the current message.
Sending Mail
Sendmail takes the standard input up to an end-of-file and adds it to
each person's mailbox. When running in an 8½(1) window, sendmail au‐
tomatically puts the window into Hold mode (see 8½(1)); this means
that the message can be edited freely, because nothing will be sent to
sendmail until the ESC key is hit to exit Hold mode. With option -#,
sendmail does not send mail, but instead reports what command would be
used to send the mail. With option -x, sendmail does not send mail,
but instead reports the full mail address of the recipient. Option -r
tells sendmail that its input is via a pipe from another program. It
won't turn on Hold mode and will expect a From line at the start of the
message to provide the name of the sender and timestamp.
The message is automatically postmarked with the sender's name and
date. Lines that look like postmarks are prefixed with
Person is a user name on the local system, a name for which there is an
alias, or a network mail address.
To is a preprocessor for sendmail. It takes a mail message as standard
input, looks through it for To:, Cc:, and Bcc: header lines, and calls
sendmail with the addresses in those header lines as destinations. The
Bcc: header lines are removed before passing the message to sendmail.
Addressing Conventions
The local convention for converting addresses is given by rewrite rules
in /mail/lib/rewrite; see rewrite(6). The conventions generally used
are:
- A person containing no or is considered a local user or local
alias. It is passed as an argument to aliasmail which returns
either the expanded alias or local!person if there is no alias
of that name.
- A canonical network mail address has the form machine!...!name,
with one or more machines mentioned.
Aliasmail
Aliasmail expands mail aliases, its arguments, according to alias
files. Each line of an alias file begins with # (comment) or with a
name. The rest of a name line gives the expansion. The expansion may
contain multiple addresses and may be continued to another line by ap‐
pending a backslash. Items are separated by white space.
In expanding a name, the sender's personal alias file /mail/box/user‐
name/names is checked first. Then the system alias files, listed one
per line in /mail/lib/namefiles, are checked in order. If the name is
not found, the expansion is taken to be local!name.
Mailboxes
Incoming mail for a user username is put in the file /mail/box/user‐
name/mbox unless either the file /mail/box/username/forward or
/mail/box/username/pipeto exists. The mailbox must have append-only
and exclusive-access mode (see chmod(1)). A user must create his or
her own mailbox using the -c option of edmail. Mailboxes are created
writable (append-only) but not readable by others.
Forwarding
If the file /mail/box/username/forward exists and is readable by every‐
one, incoming mail will be forwarded to the addresses contained in the
first line of the file. The file may contain multiple addresses. For‐
warding loops are caught and resolved by local delivery.
Filtering
If the file /mail/box/username/pipeto exists and is readable and exe‐
cutable by everyone, it will be run for each incoming message for the
user. The message will be piped to it rather than appended to his/her
mail box. The file is run as user none.
Misc
The seemail command notifies when a new message arrives in your mail‐
box. It reads a log file, default /sys/log/mail, of incoming messages.
It runs continuously where it is invoked, displaying the names and
icons of senders of new messages. The -a flag causes it to initialize
by displaying all the faces in the log; -s causes it to overwrite mul‐
tiple appearances of the same face rather than repeatedly displaying
it. The -u option displays incoming mail for the specified user in‐
stead of yourself.
Seemail's -r option causes it to announce appointments described in the
file reminders. Each line of the appointment file contains the month,
day, hour, minute and room (any string of non-spaces) of an appoint‐
ment, in a format compatible with calendar(1). The hour is 24-hour
time. The fields may be separated by white space, commas, slashes or
colons, and the room may be followed by arbitrary text. On the day of
each appointment, seemail displays a clock-face icon with the appoint‐
ment's room and time, once at midnight (or when the program starts),
then an hour before, then 15 minutes before, then 1 minute before, then
at the appointment time. At the same time, it displays the room and
any following text on a line below the clock time at the top of its
window.
Vwhois just displays in the seemail window the icons of people. Vismon
is a version of seemail that connects to a remote Unix (not Plan 9)
system to look for mail arriving there.
Smtp sends the mail message from standard input to the users rcpt-list
on the host at network address address using the Simple Mail Transfer
Protocol. The return address of the mail will contain the local system
name from the environment variable sysname and the user sender. If
.domain is given, it is appended to the end of the system name. The -u
option sends the mail in the standard Unix format instead of RFC822
format. The -f flag just prints out the converted message rather than
sending it to the destination. The -g option specifies a gateway sys‐
tem to pass the message to if smtp can't find an address or MX entry
for the destination system. The -d option turns on debugging output to
standard error.
Smtpd receives a message using the Simple Mail Transfer Protocol.
Standard input and output are the protocol connection. The -d option
turns on debugging output to standard error. Smtpd is normally run by
a network listener such as listen(8).
FILES
/sys/log/mail
mail log file
/mail/box/*
mail directories
/mail/box/*/mbox
mailbox files
/mail/box/*/forward
forwarding address(es)
/mail/box/*/pipeto
mail filter
/mail/box/*/L.reading
mutual exclusion lock for multiple mbox readers
/mail/box/*/L.mbox
mutual exclusion lock for altering mbox
/mail/box/*/dead.letter
unmailable text
/mail/box/*/names
personal alias files
/mail/lib/rewrite
rules for handling addresses
/mail/lib/namefiles
lists files to search for aliases in
/lib/face/48x48x?
directories of icons for seemail
SOURCE
/rc/bin/mail
/sys/src/cmd/upas
source for commands in /bin/upas
/sys/src/cmd/seemail
/rc/bin/vismon
/rc/bin/vwhois
SEE ALSO
face(6), rewrite(6)
BUGS
Edmail truncates long headers for searching.
MAIL(1)