Hello.
I already discussed my problem on github a little bit at
https://github.com/Exim/exim/issues/38 but still did not figure
out what is going wrong.
Here my setup. It's a gentoo machine with exim 4.8.5. Tried 4.8.7_rc2 too.
Same result.
I have a authenticator configured just like suggested at:
https://github.com/Exim/exim/wiki/AuthenticatedSmtpUsingPamAndPasswords
My problem is, as soon as i use /wrong/ credentitials i get "Unable to
authenticate at present (set_id=username): missing or misplaced { or }". If i
use the right credentials no problems at all.
When i try to simulate this on the command line (as suggested at github) i
get:
Wrong user:
exim # exim -be '${if exists{/etc/exim/passwd}
{${lookup{eitadmin}lsearch{/etc/exim/passwd} {${if crypteq{test}
{\{md5\}${extract{1}{:}{$value}{$value}fail}} {true}{false} }} {${if
pam{eitadmin:${sg{MyPassw0rd}{:}{::}} } {true}{false}} } }} {${if
pam{eitadmin:${sg{MyPassw0rdaaa}{:}{::}} } {true}{false}} }}'
Failed: missing or misplaced { or }
User exists in /etc/exim/passwd:
serve exim # exim -be '${if exists{/etc/exim/passwd}
{${lookup{testuser}lsearch{/etc/exim/passwd} {${if crypteq{test}
{\{md5\}${extract{1}{:}{$value}{$value}fail}} {true}{false} }} {${if
pam{testuser:${sg{MyPassw0rd}{:}{::}} } {true}{false}} } }} {${if
pam{testuser:${sg{MyPassw0rdaaa}{:}{::}} } {true}{false}} }}'
true
serve exim # exim -be '${if exists{/etc/exim/passwd}
{${lookup{testuser}lsearch{/etc/exim/passwd} {${if crypteq{testit}
{\{md5\}${extract{1}{:}{$value}{$value}fail}} {true}{false} }} {${if
pam{testuser:${sg{MyPassw0rd}{:}{::}} } {true}{false}} } }} {${if
pam{testuser:${sg{MyPassw0rdaaa}{:}{::}} } {true}{false}} }}'
false
So buttom line is. If the user does not exists i get "missing or misplaced {
or }"
Any hints a really appreciated.
thanks and cheers
t.