Hi list,

I have a problem with my exim4 configuration file and a key lookup, that
I use in the authentication block:

plain:
  driver = plaintext
  public_name = PLAIN
  client_send = "${lookup{$sender_address}\
      lsearch{CONFDIR/plain_passwd}{$value}}"

The above configuration is working, but I don't want to use the envelope
sender as key for the lookup, but the From: header. (or to be precise the
address in the From: header)
So I replace $sender_address with ${address:$header_from:} to:

  client_send = "${lookup{${address:$header_from:}}\
      lsearch{CONFDIR/plain_passwd}{$value}}"

But I get an error:

 expansion of "${lookup{${address" failed in plain authenticator:
 "${address" is not a known operator (or a } is missing in a variable
 reference)

To add the closing bracket doesn't make sense to me, because then the
parathesis would be unbalanced.
I thought the ${address ...} operator might be wrong and used the plain
$header_from instead and get a similar error message:

  expansion of "${lookup{$header_from" failed in plain authenticator:
  missing } at end of string

Strange enough the log message looks like the evaluation processor
doesn't see the complete line but instead stops at the first colon.
So I thought the colon is the problem and tried to make it work without:

  client_send = "${lookup{$header_from}\
        lsearch{CONFDIR/plain_passwd}{$value}}"

But this doesn't work either. At least it sees the complete configuration
line:

 expansion of
 "${lookup{$header_from}lsearch{/etc/exim4/plain_passwd}{$value}}" failed
 in plain authenticator: missing } at end of string - could be header
 name not terminated by colon

Oh, yes, I know that the precise syntax for the $header_... variables has
a colon at the end. but this bastard doesn't let me add one. Instead he
is laughing at me and asking for the colon, if I don't use it. That's
sick.

Though I saw dozens of sample configurations with lookup and
$header_from: and none of the authors mentioned any problems I thought
maybe it is the "lookup" and I better try it with something different:

 "${if eq{${address:$header_from:}}{[email protected]}}..."
     
   expansion of "${if eq{${address" failed in plain authenticator:
   "${address" is not a known operator (or a } is missing in a variable
   reference)

The strange thing is that I can run the lookup in test mode and I get the
correct login/password combination from the file:

$ exim4 -bem test.mail \
 '${lookup{${address:$header_from:}}lsearch{/etc/exim4/plain_passwd}{$value}}'

It seems that I need to escape the colon in the configuration file. Or
at least if I am in the authentication context.

Any ideas? Thanks in advance, Rolf.

-- 
 ()  ascii ribbon campaign - against html e-mail 
 /\  www.asciiribbon.org   - against proprietary attachments

-- 
## List details at http://lists.exim.org/mailman/listinfo/exim-users 
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://wiki.exim.org/

Reply via email to