When sendmail first starts up, it probes all your network interfaces to see what hostname is assigned to each. [26] For all that it finds in the up state, it adds that hostname to the class $=w ($=w), meaning that class will be considered a valid name for the local machine.
Sometimes, however, especially when supporting virtual hosts , sendmail should not consider all the interface hosts as local. Because there is no way to remove a name from a class, it is better to not have sendmail probe the interfaces in the first place. Then, you will be able to manually add (or add via your /etc/mail/local-host- names file, [27] FEATURE(use_cw_file)) just the names you want into the class $=w .
You can disable sendmail 's initial scanning of interfaces for hostnames by declaring this DontProbeInterfaces option: O DontProbeInterfaces= bool configuration file (V8.10 through V8.11) -ODontProbeInterfaces= bool command line (V8.10 through V8.11) define(`confDONT_PROBE_INTERFACES',` bool') mc configuration (V8.10 through V8.11) O DontProbeInterfaces= string configuration file (V8.12 and later) -ODontProbeInterfaces= string command line (V8.12 and later) define(`confDONT_PROBE_INTERFACES',` string') mc configuration (V8.12 and later) The argument bool is of type Boolean . If it is missing, the default value is truedon't probe interfaces at startup for hostnames. The argument string is of type String (for V8.12 and above). If it is missing, the default value is truedon't probe interfaces at startup for hostnames. If the entire option is missing, the default value is falsedo probe interfaces. Beginning with V8.12, a third alternative (to true or false) is available. If you specify a literal loopback , sendmail will probe interfaces at startup, but will not probe the loopback interface. The DontProbeInterfaces option is not safe. Even if it is specified from the command line, it can cause sendmail to relinquish its special privileges. |