|
|
coherent
mail Overview mail
Electronic mail system
The COHERENT system includes a full-featured, UNIX-style mail
system. It consists of a number of commands and files through
which you can describe potential recipients of mail, either on
your system or other systems, and send mail to them either
directly or via UUCP. This article describes the design of the
COHERENT mail system, and introduces the commands and files that
compose it.
***** Structure of the COHERENT Mail System *****
The COHERENT mail system has three major components: the _u_s_e_r
_a_g_e_n_t (i.e., mmaaiill); the _r_o_u_t_i_n_g _a_g_e_n_t (the commands ssmmaaiill and
rrmmaaiill); and the delivery agents (the commands llmmaaiill and uuuuxx).
The user agent collects messages from the user and reads messages
from a user's mailbox. It hands to the routing agent for
delivery any messages it receives from the user.
The routing agents decode addresses and decide how to deliver a
message. They are the only components of the mail system that
must run sseettuuiidd to assume the privilege of the superuser rroooott.
The delivery agents move messages to their destination.
The local delivery agent, llmmaaiill, places messages into users'
mailboxes. To discourage mail forging, llmmaaiill does not use
sseettuuiidd. It must be run by a privileged user (generally rroooott) to
write into all mail boxes. As a rule, llmmaaiill is invoked only by a
routing agent.
The UUCP delivery agent, uuuuxx, queues messages for transmission to
remote systems. It uses sseettuuiidd to assume the identity of user
uuuuccpp in order to write into the necessary spool directories. It
has long been trivial to forge messages to remote systems with
uuuuxx; keep this in mind if you plan to use electronic mail for any
kind of authorization system.
ssmmaaiill looks up each _u_s_e_r in file /uussrr/lliibb/mmaaiill/aalliiaasseess. If it
finds a match, it uses the matched name in place of _u_s_e_r. If _u_s_e_r
is of the form
_s_y_s!_u_s_e_r
or
COHERENT Lexicon Page 1
mail Overview mail
_s_y_s! ... !_u_s_e_r
or
_u_s_e_r@_s_y_s[._d_o_m_a_i_n]
it is treated as a remote destination. ssmmaaiill then invokes
command uuuuxx to pass the message to _s_y_s, whose responsibility it
becomes to pass the message to _u_s_e_r.
If ssmmaaiill finds no match in /uussrr/lliibb/mmaaiill/aalliiaasseess, or
$HHOOMMEE/.aalliiaasseess, however, it attempts to look up each _u_s_e_r in file
/eettcc/ppaasssswwdd, to see if this is a local user. If it does not find
_u_s_e_r in this file, ssmmaaiill mails an error message back to the
sender. If, however, it does find _u_s_e_r in this file, ssmmaaiill
checks file $HHOOMMEE/.ffoorrwwaarrdd for any possible forwarding
instructions. If this file is absent, ssmmaaiill passes the message
to llmmaaiill. llmmaaiill writes the message into the file
/uussrr/ssppooooll/mmaaiill/_u_s_e_r. This file is called the user's
``mailbox''. Note that _u_s_e_r owns this file, and can therefore
permit or deny access to her mail by other users.
***** Files *****
$HHOOMMEE/ddeeaadd.lleetttteerr -- Message that mmaaiill could not send
$HHOOMMEE/.aalliiaasseess -- Personal mail alias file for outgoing mail
$HHOOMMEE/.ffoorrwwaarrdd -- Forwarding instructions for inbound mail
/eettcc/ppaasssswwdd -- User identities
/ttmmpp/mmaaiill* -- Temporary and lock files
/uussrr/lliibb/mmaaiill/aalliiaasseess -- Aliases of users
/uussrr/lliibb/mmaaiill/ffuullllnnaammeess -- Short full name aliases of users
/uussrr/lliibb/mmaaiill/ppaatthhss -- Mail routing control file
/uussrr/ssppooooll/mmaaiill -- Mailbox directory, filed by user name
***** See Also *****
aalliiaasseess, ccoommmmaannddss, mmaaiill, mmkkffnnaammeess, mmssgg, nnppttxx, ppaatthhss, uuuuxx
***** Notes *****
To mail a file to another user, use the shell's redirection
operator `<'. For example, the command
mail stephen <bug.report
mails file bbuugg.rreeppoorrtt to user sstteepphheenn. The file will be prefixed
with your address, and suffixed with your mail ``signature'',
should you have one.
COHERENT Lexicon Page 2
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.