Flylib.com

Books Software

 
 
 

sendmail, 4th Edition - page 838

${verify}

Result of cert verification V8.11 and above

When a connection is made or received and STARTTLS is negotiated, sendmail updates the value of several macros, among which is this ${verify} macro.

This ${verify} macro stores a text word that describes the result of verification of the presented certificate. Those possible text words are shown in Table 21-10.

Table 21-10. Possible values for ${verify}

Word

Description

FAIL

A certificate was presented but could not be verified

NONE

STARTTLS has not been performed

NOT

No certificate was requested

NO

No certificate was presented

OK

The verification was successful

PROTOCOL

A protocol error occurred

SOFTWARE

The STARTTLS handshake failed (message will be queued)

TEMP

There was a temporary error

The ${verify} macro is used in the standard configuration file as part of the definition of the Received : header: If ${tls_version} has a value, the following is included in the Received : header's text:

(version=${tls_version} cipher=${cipher} bits=${cipher_bits} verify=${verify})

If ${tls_version} lacks a value, the preceding text is not included, meaning a STARTTLS connection was not used.

${verify} is transient. If it is defined in the configuration file or in the command line, that definition is ignored by sendmail . Note that a $& prefix is necessary when you reference this macro in rules (that is, use $&{verify} , not ${verify} ).

$V

The UUCP relay for class $=V mc configuration

$V holds as its value the name of the host that will handle all UUCP mail for the class $=V . See Section 4.6.6 for a discussion of UUCP relays in general, and how this macro relates to $W , $X , and $Y macros.

$w

The short name of this host All versions

When sendmail first starts to run, it calls gethostname (3) to get the name of the local machine. If that call fails, it sets that local name to be localhost . Then gethostbyname (3) is called to find the official name for the local host. If that call fails, the official name for the local host remains unchanged. The official name for the local host is assigned to $j .

If the V command's version (Section 17.5) is 5 or higher, V8 sendmail discards the domain and assigns the result to $w (the short name):

here.us.edu


from here to end of name discarded

If the version is 4 or less, $w is assigned the fully qualified name (and is identical to $j ).

$w is then appended to class $=w ($=w). $=w is used internally by sendmail to screen all MX records that are found in delivering mail over the network. [24] Each such record is compared in a case-insensitive fashion to $=w . If there is a match, that MX record and all additional MX records of lower priority are skipped . This prevents sendmail from mistakenly connecting to itself.

[24] Prior to V8, only $w was checked.

Any of the following errors (or variations on them) indicate that $=w , $w , or $j might contain a faulty value, most likely from a bad configuration file declaration:

553

host

config error: mail loops back to myself
553 Local configuration error, hostname not recognized as local
553

host

hostname configuration error
553 5.3.5

host

config error: mail loops back to me (MX problem?)

Note that if $w is pulled from the name server and the host is running BIND, and a cache is being downloaded, $w could be periodically unresolved . In this instance, sendmail sleeps and retries the lookup.

$w is defined when sendmail starts up. It can be redefined in the configuration file or as part of the command line. Once it is defined, $w doesn't change, so there is no need to prefix it with a $& when using it in rules.