36.4 Processing the Command LineThe sendmail program's ability to perform different tasks necessitates that the command line be processed in steps.
36.4.1 First: Prescanning the Command Line
When
sendmail
begins to run, it performs a preliminary scan
of its command-line arguments. It does this because some actions
need to be performed before its configuration file is read.
The 36.4.2 Second: Processing Prior to the SwitchesAfter the command-line switches are prescanned, but before they are processed in full, sendmail performs two important internal tasks. 36.4.2.1 Initialize the environmentThe environmental variables that are given to sendmail when it is first run are ignored. When running delivery agents, sendmail provides a small, customized environment. See Section 22.2, "The Environment" for a detailed discussion of this step. 36.4.2.2 Initialize macros
Certain macros are next declared and assigned values. The 36.4.3 Third: Process Switches
Command-line switches are processed by
sendmail
as they
appear in the command line, from left to right.
The processing of switches ends when an argument is found that lacks
a leading 36.4.4 Fourth: Read the Configuration FileThe fact that the configuration file is read after the command-line switches are processed can lead to some confusion. Some, but not all, command-line switches can overwrite some configuration file commands. Since there is no general rule, we describe the behavior of each item (such as macros and options) in a chapter dedicated to each. 36.4.5 Fifth: Collect RecipientsThe final step sendmail undertakes in processing its command line is gathering the list of recipients. Each recipient (or list of recipients if more than one is contained in a single command-line argument) is fully processed for delivery, and any error messages are printed before delivery is actually undertaken. If sendmail is running in a mode that doesn't require recipients, any list of recipients in the command line is silently ignored. |
|