[Exim] string expansion fails in Exim 3.35

Top Page
Delete this message
Reply to this message
Author: Corey Edwards
Date:  
To: exim-users
Subject: [Exim] string expansion fails in Exim 3.35
I'm running an Exim 3.35 smarthost on Debian stable. It needs to send
mail to a couple different upstream hosts based on what domain the
original sender is in, which it's doing just fine. Now the problem gets
more difficult. Each connection needs to be SMTP AUTH'd using the domain
of the sender. I have created identical usernames and passwords for each
domain on the upstream boxes. I've got the following lines in the
authenticators section of exim.conf:

        plain:
          driver = plaintext
          public_name = PLAIN
          client_send = "^user${sg{$h_From:}{(^.*@|>.*$)}{}}^password"


That should extract the domain from the From: header and plop it into
the AUTH message, but instead it fails with this message:

        expansion of "^${sg{$h_From" failed in plain authenticator:
        missing } at end of string


Of course, I tried adding a } at the end, but that wasn't really the
problem :(. Turns out if I replace the variable $h_From: with say $host,
then it will work (except the AUTH fails, of course). Also, changing
$h_From: to $h_From pukes saying I should add a colon which makes sense
but that seems to be the issue. I've tried many variations on this and
everything works until I use $h_From:.

Thanks for any help!

Corey Edwards
coreyed@???