I am attempting to configure Exim in such a way that clients who wish to relay email through the server must supply a single passphrase. The file /etc/exim4/conf.d/auth/30_exim4-config_examples contains the following configuration lines commented out:

# plain_server:
#   driver = plaintext
#   public_name = PLAIN
#   server_condition = "${if crypteq{$auth3}{${extract{1}{:}{${lookup{$auth2}lsearch{CONFDIR/passwd}{$value}{*:*}}}}}{1}{0}}"
#   server_set_id = $auth2
#   server_prompts = :
#   server_advertise_condition = ${if eq{$tls_cipher}{}{}{*}}
#   .endif

I'm not sure I fully understand exactly what is going on here.

  • Why is server_prompts empty when the login_server example includes prompts for both a username and password? Shouldn't there be a prompt for a password here?

  • Where is the password actually set?

I fully intend to use TLS to secure communication between client and server - from what I understand, the last three lines in the snippet above causes the authentication method to be advertised only if TLS is enabled or AUTH_SERVER_ALLOW_NOTLS_PASSWORDS is set.

1 Answer 1


Leaving server_prompts as-is gives you the default (RFC compliant) behaviour, otherwise you might need to modify your clients to supply additional values.

The password is looked up in the CONFDIR/passwd file, CONFDIR is equal to /etc/exim4 on Debian.

Is your intention that all users use a common password? Then you could change the server_condition. Something like:

server_condition = ${if {eq{$auth3}{mysecret}{yes}{no}}

Do checkout the excellent exim documentation, e.g. here

  • "Is your intention that all users use a common password?" At this point, yes. Thanks for the explanation. Apr 14, 2015 at 17:48

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .