A server offers authentication by
presenting the AUTH keyword to the connecting site, following that
with the types of authentication mechanisms supported:
250-host.domain Hello some.domain, pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-8BITMIME
250-SIZE
250-DSN
250-ETRN
250-AUTH DIGEST-MD5 CRAM-MD5 note this line
250-DELIVERBY
250 HELP
If the connecting site wishes to authenticate itself, it replies with
an AUTH command indicating the mechanism preferred:
AUTH CRAM-MD5 client sends
Once it is selected, that mechanism is placed into this
${auth_type} macro. If no mechanism is selected
(none is offered, or none is accepted), or if the act of
authentication fails, ${auth_type} becomes
undefined (NULL).
If the authentication is accepted, the Received:
header is updated to reflect that:
HReceived: $?sfrom $s $.$?_($?s$|from $.$_)
$.$?{auth_type}(authenticated$?{auth_ssf} bits=${auth_ssf}$.)
$.by $j ($v/$Z)$?r with $r$. id $i$?{tls_version}
(version=${tls_version} cipher=${cipher} bits=${cipher_bits}
verify=${verify})$.$?u
for $u; $|;
$.$b
Here, if the connection were authenticated, the second line of the
Received: header would look like this:
(authenticated bits=bits)
(authenticated) if no encryption negotiated
The ${auth_type} macro is useful for adding your
own rules to policy rule sets, such as to the
Local_trust_auth rule set. Note that a
$& prefix is necessary when you reference this
macro in rules (that is, use $&{auth_type},
not ${auth_type}).
${auth_type} is transient. If defined in the
configuration file or in the command line, that definition can be
ignored by sendmail.