On Tue, 4 Jun 2002, Dr Andrew C Aitchison wrote:
> On Mon, 3 Jun 2002, Dave C. wrote:
> > I cant seem to find a way to make an "OR" out of two "require"s
> >
> > acl_check_rcpt:
> > deny local_parts = ^.*[@%!/|]
> > require verify = sender/callout=5s/callout_defer_ok
> > require verify = recipient/callout=5s
> > accept hosts = :
> > accept hosts = +relay_from_hosts
> > accept domains = MY.DOMAIN
> > accept domains = lsearch;/path/to/more/of/MY.DOMAINS
> > deny message = Access denied
>
> I'm not entirely clear yet, but...
> If they are ORed, how are they different from an accept ?
> Is it enough to accept the first and require the second ?
The way I understand it, if I 'accept', the ACL ends and no further
processing is done. Or is this not the case?
I want to
require - either local_part = postmaster or recipient/callout.....
If I do
require local_part = postmaster
require verify recipient = callout/....
It will still run the callout even if the local_part = postmaster
If I accept, it wont follow the rest of the ACL:
accept hosts = :
accept hosts = +relay_from_hosts
etc..
and the final deny if none of the hosts or domains match...
I suspect there is no way to do this - I await an official word from
PH10...
If there is no way to do this, then perhaps a suggestion:
Add an "elserequire"
If a "require" (or an "elserequire") fails, check if it is followed by
an "elserequire". If it is, process the "elserequire". If it succeeds,
allow processing to continue (skipping past any further "elserequires")
This could continue past any number of failing elserequires until one
passed (or they all failed)