On Mon, 6 Jun 2005, Eli wrote:
> Just to add to the list - I experienced a similar problem where I was
> defining a header in an early ACL stage, and then trying to detect it's
> presence in later ACLs, however it was always returning false even though
> the header was being added. Ironically, I switched to testing an acl_m*
> value and it's been working since - but never worked when trying to detect
> the header. I figured it was just because the header wasn't officially
> added to the msg yet (thus impossible to test for a header added in ACLs in
> other ACLs - but the docs don't say it's that way).
You are correct. The docs do say something about this, though. From
section 39.19:
--------------------------------------------------------------------------------
Header lines that are added by an ACL at MAIL or RCPT time are not visible in |
string expansions in ACLs for subsequent RCPT commands or in the |
"acl_smtp_predata" ACL. However, they are visible in string expansions in the |
ACL that is run after DATA is complete (the "acl_smtp_data" ACL). This is also |
true for header lines that are added in the "acl_smtp_predata" ACL. If a |
message is rejected after DATA, all added header lines are included in the |
entry that is written to the reject log. |
|
If you want to preserve data between MAIL, RCPT, and the "acl_smtp_predata" |
ACLs, you can use ACL variables, as described in section 39.15. |
--------------------------------------------------------------------------------
There is a Wish List item to re-design and re-implement the way header
additions and substractions are handled in all the places in Exim that
this happens. But don't hold your breath.
--
Philip Hazel University of Cambridge Computing Service,
ph10@??? Cambridge, England. Phone: +44 1223 334714.
Get the Exim 4 book: http://www.uit.co.uk/exim-book