Another role of sendmail is that of transporting mail to other machines. A message is transported when sendmail determines that the recipient is not local. The following lines from a typical configuration file define delivery agents for transporting mail to other machines:
Msmtp, P=[IPC], F=mDFMuX, S=11/31, R=21, E=\r\n, L=990, Muucp, P=/usr/bin/uux, F=DFMhuUd, S=12, R=22/42, M=10000000,
The actual lines in your file may differ. The name smtp
in the above example may appear in your file as ether
or
ddn
or something else. The name uucp
may appear as suucp
or uucp-dom
. There may be more
such lines than we've shown here.
The important point for now is that some delivery agents
deal with local delivery, while others deal with delivery over a network.
The sendmail program has the internal ability to transport mail over only one kind of network, one that uses TCP/IP; the following line instructs sendmail to do this:
Msmtp, P=[IPC], F=mDFMuX, S=11/31, R=21, E=\r\n, L=990,
The [IPC]
may appear as [TCP]
. The two are equivalent.
When sendmail transports mail on a TCP/IP network, it first sends the envelope-sender hostname to the other site. If the other site accepts the sender's hostname as legal, the local sendmail then sends the envelope-recipient list. The other site accepts or rejects each recipient one by one. If any recipients are accepted, the local sendmail sends the message (header and body together).
The line in the configuration file that tells sendmail how to transport over UUCP looks like this:
Muucp, P=/usr/bin/uux, F=DFMhuUd, S=12, R=22/42, M=10000000,
This line tells sendmail to send UUCP network mail by running the /bin/uux (UNIX to UNIX eXecute) program.
There are many other kinds of network protocols that sendmail can use to transport email. Some of them may have shown up when you ran grep earlier. Other common possibilities might look like one of these:
Mfax, P=/usr/local/lib/fax/mailfax, F=DFMhu, S=14, R=24, M=100000, Mmail11, P=/usr/etc/mail11, F=nsFx, S=15, R=25, A=mail11 $g $x $h $u Mmac, P=/usr/bin/macmail, F=CDFMmpsu, R=16, S=16, A=macmail -t $u
The Mfax
line defines one of the many possible ways to send
a FAX using sendmail. FAX
transports images of documents over telephone lines. In the configuration
line above, the /usr/lib/fax/mailfax program is run, and a mail message
is fed to it for conversion to and transmission as a FAX image.
The Mmail11
line defines a way of using the mail11(1) program
to transport email over a DECnet network, used mostly by
Digital Equipment Corporation (DEC) machines.
The Mmac
line defines a way to transport mail to
Macintosh machines that are connected together on an AppleTalk network.
In all of these examples, note that sendmail sends email over other networks by running programs that are tailored specifically for that use. Remember that the only network that sendmail can use directly is a TCP/IP-based network. [6]
[6] Actually, we're fudging for simplicity. V8 sendmail can also send messages over an ISO network.