Re: [Exim] ACL help

Página superior
Eliminar este mensaje
Responder a este mensaje
Autor: Dave C.
Fecha:  
A: Dr Andrew C Aitchison
Cc: exim-users
Asunto: Re: [Exim] ACL help
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)