Previous Section Next Section

$x

The full name of the sender All versions

The $x macro holds the full name of the sender. When sendmail processes a mail message for delivery, it rewrites the sender's address using the canonify rule set 3 and the parse rule set 0 so that it can determine whether the sender is local. If the sender is local, the parse rule set 0 provides the sender's login name with the $: operator. Then, if the delivery agent's F=w flag (F=w) is set,[25] the login name is looked up using the method defined by the MailboxDatabase option (MailboxDatabase).[26] If the login name is known, the sender's full name is returned. If necessary, that full name is then processed, throwing away phone numbers and the like and converting the & character. The result, usually fairly close to the sender's actual full name, is the value assigned to the $x macro.

[25] Prior to V8.7 this behavior was tied to the local delivery agent.

[26] Prior to V8.12, the getpwnam(3) routine was used.

Under certain circumstances, sendmail places a different value in $x:

  • When sendmail first starts to run, it sets the full name to be the value of the NAME environment variable, and places that value into $x.

  • The -F command-line switch (-F) can overwrite the value in the $x macro.

  • If the operating mode is -q (Section 11.8.1) or -bd (-bd), the value in $x is reset to NULL.

  • In processing the headers of a message, if sendmail finds a Full-Name: header (Full-Name:), it assigns the text of that header to the $x macro.

  • In sending a failed mail message, the login name of the sender is taken from $n, and the full name is set to be:

    Mail Delivery Subsystem

The $x macro is intended for use in various header definitions. $x is transient. If it is defined in the configuration file or the command line, that definition will be ignored by sendmail. Note that a $& prefix is necessary when you reference this macro in rules (that is, use $&x, not $x).

    Previous Section Next Section