That's exactly what I needed, works like a charm. Thanks a lot!
Jacob
On 27/11/2015 11:42, Mike Brudenell wrote:
Hi, Jacob -
*Disclaimer:* I've not used this myself, so this is hypothesis but
worth a try…
On 26 November 2015 at 20:04, Jacob Hansen <[email protected]
<mailto:[email protected]>> wrote:
I then tried following setup in the remote_login section:
remote_login:
driver = plaintext
public_name = LOGIN
hide client_send =
${lookup{$authenticated_id}lsearch{/etc/differentlogin}{:
different_username : different_passsword}{: remote_username :
remote_password}
However this gives me the following EXIM error when attempting to
send e-mails:
== [email protected] <mailto:[email protected]> R=remote_route
T=remote_transport defer (-48): expansion of
"${lookup{$authenticated_id}lsearch{/etc/differentlogin}{" failed
in mandrill_login authenticator: missing } at end of string
You need to add the closing "}" to match the opening "${" of the
lookup, otherwise the line is syntactically incorrect. Always check
your braces balance.
Adding another } as suggest, i.e
|
|| hide client_send =
${lookup{$authenticated_id}lsearch{/etc/differentlogin}}{:
different_username : different_passsword}{: remote_username :
remote_password}
gives me failed login (the login details are correct, but maybe an
additional } is added to the login instructions or something):
SMTP<< 435 4.7.8 Error: authentication failed:|
By adding the closing "}" you've got the line syntactically correct
but it's not working as you expect.
I think you're trying to do something that the Exim Specification says
you can't… you're trying using a single lookup to generate a single
colon-separated string and then expecting Exim to split this into its
component parts.
But if you read the /Using plaintext in a client/ section of the
Specification you'll see
Note: You cannot use expansion to create multiple strings, because
splitting takes priority and happens first.
The value of client-send is a number of strings in a colon-separated
list, and parsing the line/splitting it at the colons happens
_before_ the string expansion. So I suspect you'll need to use a
separate lookup to generate each string in turn. For example…
hide client_send =
${lookup{$authenticated_id}lsearch{/etc/differentlogin}{:
different_username : different_passsword}{: remote_username :
remote_password}
hide client_send = :
${lookup{$authenticated_id}lsearch{/etc/differentlogin}{different_username}}
:
${lookup{$authenticated_id}lsearch{/etc/differentlogin}{different_password}}
If you might want to use different username/password pairs based on
the username matched in /etc/differentlogin you could probably do
something funky by putting the username/password pair in the file as
the value of the entry with a separator character. (Properly securing
the file of course!)
In each of the two lookups above you could then split the value at the
separator character and use the first element as the username and the
second for the password.
You'd have to weigh the merits/security/safety of storing passwords in
a file though, and also be careful to choose a separator character for
the username/password pair that can never appear in either!
Cheers,
Mike B-)
--
Systems Administrator & Change Manager
IT Services, University of York, Heslington, York YO10 5DD, UK
Tel: +44-(0)1904-323811
Web:www.york.ac.uk/it-services <http://www.york.ac.uk/it-services>
Disclaimer:www.york.ac.uk/docs/disclaimer/email.htm
<http://www.york.ac.uk/docs/disclaimer/email.htm>
--
## List details at https://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/