You hand one envelope to a clerk, who carries it next door and hands it to friend1 in
the next office. This is like delivery on your local machine. The clerk drops the other
copy in the slot at the corner mailbox, and the post office forwards that envelope
across the country to friend2@remote. This is like sendmail transporting a mail message
to a remote machine.
To illustrate what an envelope is, consider one way in which sendmail might run /usr/
lib/mail.local, a program that performs local delivery:
deliver to friend1??™s mailbox
?†“
/usr/lib/mail.local -d friend1 ?†? sendmail runs
?†‘
the envelope recipient
Here sendmail runs /usr/lib/mail.local witha -d, which tells /usr/lib/mail.local to
append the mail message to friend1??™s mailbox.
Information that describes the sender or recipient, but is not part of the message
header, is considered envelope information. The two might or might not contain the
same information (a point we??™ll gloss over for now). In the case of /usr/lib/mail.local,
the email message shows two recipients in its header:
To: friend1, friend2@remote ?†? the header
But the envelope information that is given to /usr/lib/mail.local shows only one (the
one appropriate to local delivery):
-d friend1 ?†? specifies the envelope
Now consider the envelope of a message transported over the network. When sending
network mail, sendmail must give the remote site the envelope-sender address
and a list of recipients separate from and before it sends the mail message (header and
body).
Pages:
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53