Previous | Table of Contents | Next |
For each unique mailer and host in the recipient list, sendmail calls the appropriate mailer. Each invocation of a mailer sends a message to all of the users on one host. Mailers that accept only one recipient at a time are handled properly.
The sendmail program sends the message to the mailer using one of the same interfaces used to submit a message to sendmail (using the conventional UNIX argument vector/return status, speaking over a pair of UNIX pipes, and speaking SMTP over a TCP connection). Each copy of the message has a customized header attached to the beginning of it. The mailer catches and checks the status code, and a suitable error message is given as appropriate. The exit code must conform to a system standard. If a nonstandard exit code is used, the message Services unavailable is used.
When the mailer returns a status that shows it might be able to handle the mail later (for example, the next host is down, or the phone is busy for uucp), sendmail stores it in a queue and tries again later.
If errors occur during processing, sendmail returns the message to the sender for retransmission. The letter may be mailed back or written to the dead.letter file in the sender's home directory.
Assuming that you use the default rule set in the sendmail.cf file, the following examples show the routes an email message may take. The route is determined by how the email is addressed.
Figure 1-9 Delivery path for mail addressed with a user-name only.
Figure 1-10 Delivery path for mail addressed with the username and the host name.
Figure 1-11 Delivery path for mail addressed with the username and the domain name.
Figure 1-12 Delivery path for mail addressed with a username and a fully qualified domain name.
Previous | Table of Contents | Next |