sendmail sends and receives SMTP mail, processes mail aliases, and interfaces between user mail agents and mail delivery agents. sendmail is started as a daemon at boot time to process incoming SMTP mail. sendmail aliases are defined in the aliases file. The rules for interfacing between user agents and mail delivery agents can be complex; sendmail uses the sendmail.cf file to define these rules.
Configuring the sendmail.cf file is the most difficult part of setting up a sendmail server. The file uses a very terse command syntax that is hard to read. Sample sendmail.cf files are available to simplify this task. Most systems come with a vendor-supplied configuration file, and others are available with the sendmail software distribution. The sendmail sample files must first be processed by the m4 macro processor. Once the proper sample file is available, very little of it needs to be changed. Almost all of the changes needed to complete the configuration occur at the beginning of the file and are used to define information about the local system, such as the hostname and the name of the mail relay host. sendmail provides an interactive testing tool that is used to check the configuration before it is installed.
sendmail is a big, complex service that is important enough to deserve its own chapter. Web service is another important service, provided by Apache on most Unix systems. Apache's complex configuration syntax is the topic of the next chapter.