On 10/18/2012 6:38 PM, Phil Pennock wrote:
> On 2012-10-18 at 06:55 -0700, Marc Perkel wrote:
>> I'll do bugzilla if I'm not crazy but thought I'd post it here first to
>> see if I'm nuts.
>>
>>
>> In the transports this works:
>>
>> helo_data = SERVER_NAME.junkemailfilter.com
>>
>> However this does not work:
>>
>> helo_data = $acl_c_helo_data
>>
>> The helo becomes an empty string. And I'm sure the variable is set
>> properly. It's as if acl variables don't work in the transport?
> That's an $acl_c_<name>, "c" for "connection", persists for the lifetime
> of the connection. Transports are run afterwards, so you need an
> $acl_m_<name> variable, to have the data persisted for the life of the
> message.
>
> See "$acl_c..." and "$acl_m..." in "11.9 Expansion variables" of the
> documentation.
>
> The server is behaving as documented, as expected, and consistently,
> with a naming scheme that provides a decent affordance to how the
> variable is handled. I do not believe that this is a bug in Exim.
>
> -Phil
>
Hi Phil,
I guess I'm just plain confused. Here's the definition:
$acl_c...
Values can be placed in these variables by the set modifier in an
ACL. They can be given any name that starts with $acl_c and is at
least six characters long, but the sixth character must be either a
digit or an underscore. For example: $acl_c5, $acl_c_mycount. The
values of the $acl_c... variables persist throughout the lifetime of
an SMTP connection. They can be used to pass information between
ACLs and between different invocations of the same ACL. When a
message is received, the values of these variables are saved with
the message, and can be accessed by filters, routers, and
*transports* during subsequent delivery.
I don't understand why the C variable would vanish during the transport.