define standard plain text auth
PLAIN: driver = plaintext server_set_id = $auth2 server_prompts = : server_condition = ${if and {{eq{$auth2}{username_here}}{eq{$auth3}{password_here}}}} server_advertise_condition = true ${if def:tls_cipher }
- server_set_id defines which parameter to use as the id (this will show up in log messages)
- server_condition defines the condition to use for authentication $auth1 is the auth type (PLAIN, LOGIN, etc), a$auth2 and $auth3 are compared to whatever strings are entered between the subsequent braces
- the rest is self explanatory
Using a DB
server_condition = ${lookup{$auth2}dbm{/etc/passworddb}\ {${if eq{$value}{$auth3}}} {false}}
Then create a temporary file with key/value list of usernames separated with a colon
bob:bobs_cryptic_password sue:sues_crap_password
Then run exim_dbm:
exim_dbmbuild plain_text_passwords.txt passworddb
Testing
Below are a list of tests that should be checked along with their results:
With Auth to remote address: Completed
with auth to local address: Completed
Without Auth to remote address: rejected RCPT <user@remote.com>: relay not permitted
without auth to local address from local address: Completed
without auth to local address from remote address: Completed