Author: Jakob Hirsch Date: To: Tom Bombadil CC: exim users Subject: Re: [exim] acl_mX variables
Tom Bombadil wrote:
> Basically, if acl_m(n) could be used on a per-recipient basis - or if an
> acl_r(n) for recipient was available - we could just talk to the DB once
> to get all the data needed for recipient checking + routing/delivery. I
> think technically this is still possible, no?
To answer your original question:
acl_m* is message specific, so it simply contains what it was was last
set to, and gets reset after the message was received (though it is
saved with the spool file, so it can be used later in message processing).
Or, of your list: > - The result of the last query in acl time?
What you probably want is a associative array (a.k.a. hash), or
expandable acl variable names (like acl_m_rcptdata_$local_part@$domain),
but Exim doesn't have that. You are free to story multiple values in a
acl_mX variable by using a key value (in this case, the recipient
address) and using extract to retrieve it later on, e.g.:
accept
verify=recipient
set acl_m_rcpts_data = $acl_m0 $local_part@$domain=$address_data
...
${extract {some_user@domain} {$acl_m_rcpts_data}}
This should work, unless you have localparts with = in them.