home | O'Reilly's CD bookshelfs | FreeBSD | Linux | Cisco | Cisco Exam    


sendmailSearch this book
Previous: 3.2 Role in Local Delivery Chapter 3
The Roles of sendmail
Next: 3.4 Role as a Daemon

3.3 Role in Network Transport

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.

3.3.1 TCP/IP

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).

3.3.2 UUCP

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.

3.3.3 Other Protocols

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.