Re: [Exim] callout,random

Top Page
Delete this message
Reply to this message
Author: Giuliano Gavazzi
Date:  
To: exim-users
Subject: Re: [Exim] callout,random
At 9:41 +0100 2003/05/13, Philip Hazel wrote:
>On Mon, 12 May 2003, Giuliano Gavazzi wrote:
>
>  > warn    verify        = sender/callout=30s,random
>  >        set acl_c7 = ${eval: $acl_c7-1}

>>
>>
>> but I seem to get -1 for users at server that accept any recipient: I
>> thought that would mean a failure and skip the rest of the warn.
>
>No. If a server accepts any recipient, callout verifies *succeed*. The
>point of the random check is to try to determine that any recipient is
>accepted; if this is the case, Exim remembers it, and does not make the
>SMTP call next time. It just succeeds regardless.


it would be useful to be able to tell if a server accepts a random
callout, that is to tell if a callout is reliable or not.

There are two reasons:
1) some servers might generally accept any callout except for certain
abused users. I cannot prove this, it looked once like hotmail.com
did that but it does not seem so anymore.
2) if one does not use the result of the callout either than for
scoring a particular transaction (that is what my score acl does),
then it makes a difference to know if the callout is reliable or not.
Exim could still cache this reliability information, but a new
selector ("strict" for instance) could select this behaviour.
Having said so, since we are not using three valued logic, we would
need some tricks to distinguish between real failure and reliability
failure, like:


warn    !verify        = sender/callout=30s,random,strict
         set acl_c7 = 1
         !verify        = sender/callout=30s,random (fails for unkn.)
         set acl_c7 = 2


that would give:


invalid user       valid user       unreliable


acl_c7   2                  0                1



Thanks

Giuliano