Previous Section Next Section

$={persistentMacros}

Macros preserved in the qf file V8.10 and above

When a message is first accepted, sendmail usually queues it first,[7] then tries to deliver it. The qf file contains all the envelope information about a message, including information specific to the sendmail delivery process, and several macros whose values are important to preserve between queue runs. This {persistentMacros} class holds the names of those important macros.

[7] If the SuperSafe option (SuperSafe) is false, or interactive with the DeliveryMode option (DeliveryMode) also set to interactive, and if the DataFileBufferSize (DataFileBufferSize) and XscriptFileBufferSize (XscriptFileBufferSize) options are large enough, it is possible that no mail will ever hit the disk.

When V8.10 sendmail starts to run, it adds to the {persistentMacros} class a list of five macro names:

  • The $r macro ($r) holds the protocol used to receive a message when it was first accepted.

  • The $s macro ($s) holds the hostname of the sender's machine.

  • The $_ macro ($_) holds the validated hostname and address, RFC1413-validation (if available), and IP source route information associated with the incoming SMTP connection.

  • The ${if_addr} macro (${if_addr}) holds the IP address of the interface on which the message was received.

  • The ${daemon_flags} macro (${daemon_flags}) holds the flags specified by the DaemonPortOptions option (DaemonPortOptions).

To add macro names to this class, omit the leading dollar symbol. For example, you might add the macro ${MyMacro} like this:

LOCAL_CONFIG
C{persistentMacros} {MyMacro}

However, you are strongly advised not to add any macros to this class. Should you feel the need to do so, take enough time to fully examine how that macro is used in rule sets, and how it can be used internally by sendmail. Then cautiously test and observe to be certain nothing broke when you added it.

    Previous Section Next Section