Marten Lehmann <[email protected]> (Di 26 Aug 2014 19:18:04 CEST):
> Hello,
> 
> >You need to use ${sg} to replace ,, with ,:
> >
> >text = ${sg{${lookup ldap 
> >{ldap:///cn=$local_part@$domain,ou=users,dc=mail?autoresponder}}{,,}{,}}
> 
> this is our poor man's workaround already. Yet, I don't understand
> the situation, where double commas are needed. What was broken so
> double commas seemed like a solution?

If one directory entry (object) contains a multivalued attribute
and if the value is allowed to contain a comma:

    foo = there, not here
    foo = over there

the query ldap:///<base>?foo?sub?<filter>
formerly returned the string

    there, not here, over there

That's ambigous.
Current versions return the string

    there,, not here,over there

That's clearly a list, using ',' as the separator. 
If the lists values contain the separator, it has to be doubled.

E.g.

    hostslist relay_from_hosts = 127.0.0.1 : ::::1
or
    hostlist relay_from_hosts = <; 127.0.0.1 ; ::1

The last host list changes the list separator with the '<…' syntax.

I think, for your purpose, changing ,, to , would suffice. But the
perfect way would be using "reduce" to concat the values of a
multivalued attribute

    text = ${reduce{<, ${lookup ldap{…}}}{}{$value$item}}

    Best regards from Dresden/Germany
    Viele Grüße aus Dresden
    Heiko Schlittermann
-- 
 SCHLITTERMANN.de ---------------------------- internet & unix support -
 Heiko Schlittermann, Dipl.-Ing. (TU) - {fon,fax}: +49.351.802998{1,3} -
 gnupg encrypted messages are welcome --------------- key ID: 7CBF764A -
 gnupg fingerprint: 9288 F17D BBF9 9625 5ABC  285C 26A9 687E 7CBF 764A -
(gnupg fingerprint: 3061 CFBF 2D88 F034 E8D2  7E92 EE4E AC98 48D0 359B)-

Attachment: signature.asc
Description: Digital signature

-- 
## 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/

Reply via email to