Q0741 - Exim/exim GitHub Wiki
How can I get Outlook Express to use TLS when authenticating?
If you check auth required
in OE, it will authenticate as soon as it
sees AUTH LOGIN, in preference to STARTTLS. The trick is to advertise
things to OE in a certain order. The first EHLO should advertise
STARTTLS but not AUTH, and only the second EHLO (after TLS starts)
should advert AUTH. One way of achieving this is to put, in the main
section of your Exim configuration:
auth_advertise_hosts = ${if eq{$tls_cipher}{}{127.0.0.1}{*}}
This means that the only host to which AUTH is advertised is 127.0.0.1
when the session is not encrypted (that is, before TLS has started). The
idea here is that there's no need for encryption for anything coming via
the loopback interface. For an encrypted session, however, AUTH is
advertised to all hosts. You can also block the AUTH command itself for
unencrypted connections, by creating an ACL for acl_smtp_auth
that is
something like this:
accept encrypted = *
accept hosts = 127.0.0.1
deny message = TLS encryption required before AUTH