Re: [exim] Exim grammar help needed

Top Page
Delete this message
Reply to this message
Author: Jeremy Harris
Date:  
To: exim-users
Subject: Re: [exim] Exim grammar help needed
On 16/07/2020 21:19, Phillip Carroll via Exim-users wrote:
>> It is a common idiom; it enables the forensic stuff only for
>> domains that are not listed in screwed_up_dmarc_records.


> From your reply, I infer that "!domains = +x" means all domains NOT in
> x.  I couldn't find that definition.
>


ACL chapter, section 20:
"An exclamation mark preceding a condition negates its result".

The "condition" referred to for this case is "domains = +x",
which compares the recipient domain with a list - in this case
a named list called "x". It is defined in section 26 of that
chapter:

domains = <domain list>
This condition is relevant only after a RCPT command. It checks that
the domain of the recipient address is in the domain list.


By inference, this check is returning a truth value which controls
the operation of the ACL verb. In this case you are using a "warn";
it only acts if all its conditions are true. Conditions and
modifiers on the verb are tested and acted-on in the order written,
and *NOTE* conditions are early-out. Therefore, in this case,
the condition controls whether the modifier (the control=) gets
performed.



Lists in general are described in chapter 10, named-lists in section
6 of it and domain lists in section 9.



> So, if I wish to enable the forensic stuff for domains with screwed up
> dmarc, I must populate "screwed_up_dmarc_records" (in this example) with
> all domains that are NOT screwed up?


The intent of the example is to avoid the screwed up domains. Because
they are screwed up. When you know one is borked, you sigh and manually
add it to the list.

If you don't have such a list and don't care to build one, just miss
the condition off the verb, assuming you want this forensics stuff at
all.
--
Cheers,
Jeremy