Re: [Exim] acl verb warn and temporary problems

Pàgina inicial
Delete this message
Reply to this message
Autor: Giuliano Gavazzi
Data:  
A: Michael Westerburg, exim-users
Assumpte: Re: [Exim] acl verb warn and temporary problems
At 6:42 pm +0100 2004/02/23, Michael Westerburg wrote:
[...]
>We applied the following ACL (-check_data):
>
>   warn  message = X-Infected: $malware_name
>         malware = *
>         control = freeze
>         log_message = malicious content found ($malware_name) \
>           Sender='$sender_address' \
>           Recipients[$recipients_count]=[$recipients]

>
>Everytimes sophie isn't running the mail will not be filtered because
>"no action is taken if there is a temporary problem with one of the
>conditions" (Exim, p.329). Due to sophies instability this happens quit
>a lot.
>
>Is there any chance to check next if the ACL shown above did run
>successfully? Then we could either defer the message handling or keep
>going on.


I think you have to call the condition twice. As an example this is
what I do for callouts:


warn !sender_domains = aol.com : yahoo.com : netscape.net
      set acl_c7      = 2  <<< this sets the value for deferred callout
      verify          = sender/callout=30s,random
      set acl_c7      = 0  <<< this resets the value if the callout succeeded


warn    !sender_domains = aol.com : yahoo.com : netscape.net
         !verify         = sender/callout=30s,random
         log_message     = callout failed
         set acl_c7      = 10 <<< this is the value for negative result
         set acl_m2 = YOUR EMAIL ADDRESS: blah blah blah


so, I have three values:

0: callout succeeded
2: callout gave error (remote server did not respond, etc.)
10: callout gave 5XX answer

I do not know if malware = * can be used the same way, with callouts
the double call does not add much overhead as the result is cached
(well, perhaps only if it does not return error, but this is not a
big problem).

Giuliano