This finaly did the job: acl_check_mail:
deny condition= ${if match{${run{/etc/exim/panama $sender_address_domain}}}{NameCheap}{true}{false}} Now all Spamer from NameCheap are out. Greetings Daniel -----Ursprüngliche Nachricht----- Von: Andrew C Aitchison via Exim-users [mailto:exim-users@exim.org] Gesendet: Dienstag, 20. Februar 2018 14:54 An: exim-users@exim.org; muel...@tropenklinik.de Betreff: Re: [exim] Get the value of an external script in a condition >From the documentation that Jeremy quoted, I think that your script should use "exit 0" and "exit 1" (or other non-zero value). Your exim config snippet does not use $value in the match; you need to do that or do the match in your script and use exit 0 *only if there is a match*. Interesting idea to use the whois database to detect spammers. Since whois data has expiry info and doesn't change every day, I wonder how easy it would be to cache the results. whois isn't as easy to script as you may wish (Tony Finch has a rant about this at https://fanf.dreamwidth.org/113367.html ) but it may be sufficient for your use. On Tue, 20 Feb 2018, Mueller via Exim-users wrote: > So when I run Exim in verbose. It turns out the expansion is working, > but nervertheless it points to false but it should be true?: > > > 13:54:04 9383 processing "defer" > 13:54:04 9383 expanding: run{/etc/exim/panama $sender_address_domain > 13:54:04 9383 result: run{/etc/exim/panama timerunr.com > 13:54:04 9383 expanding: NameCheap <------------------------------------- > 13:54:04 9383 result: NameCheap > <--------------------------------------- > 13:54:04 9383 condition: match{run{/etc/exim/panama > $sender_address_domain}{NameCheap} > 13:54:04 9383 result: false > 13:54:04 9383 expanding: true > 13:54:04 9383 result: true > 13:54:04 9383 skipping: result is not used > 13:54:04 9383 expanding: false > 13:54:04 9383 result: false > 13:54:04 9383 expanding: ${if match{run{/etc/exim/panama > $sender_address_domain}{NameCheap}{true}{false}} > 13:54:04 9383 result: false > 13:54:04 9383 check condition = ${if match{run{/etc/exim/panama > $sender_address_domain}{NameCheap}{true}{false}} > 13:54:04 9383 = false > 13:54:04 9383 defer: condition test failed > > So what is going wrong ? > > > > > -----Ursprüngliche Nachricht----- > Von: Jeremy Harris via Exim-users [mailto:exim-users@exim.org] > Gesendet: Dienstag, 20. Februar 2018 10:35 > An: exim-users@exim.org > Betreff: Re: [exim] Get the value of an external script in a condition > > On 20/02/18 09:15, Mueller via Exim-users wrote: >> #!/bin/bash >> out=$(/usr/bin/whois $1|grep "Registrar:"| cut -d ':' -f2| awk >> '{print >> $1}') echo "$out" >> >> I tried it with the $run command, but it uis always set to false! >> >> defer condition= ${if match{run{/etc/exim/panama >> $sender_address_domain}{NameCheap}{true}{false}} > > The docs say: > > "If the command succeeds (gives a zero return code) <string1> is > expanded and replaces the entire item; during this expansion, the > standard output/error from the command is in the variable $value. If > the command fails, <string2>, if present, is expanded and used." > -- > Jeremy > > -- > ## List details at https://lists.exim.org/mailman/listinfo/exim-users > ## Exim details at http://www.exim.org/ ## Please use the Wiki with > this list - http://wiki.exim.org/ > > > -- > ## List details at https://lists.exim.org/mailman/listinfo/exim-users > ## Exim details at http://www.exim.org/ ## Please use the Wiki with > this list - http://wiki.exim.org/ > -- ## List details at https://lists.exim.org/mailman/listinfo/exim-users ## Exim details at http://www.exim.org/ ## Please use the Wiki with this list - http://wiki.exim.org/ -- ## List details at https://lists.exim.org/mailman/listinfo/exim-users ## Exim details at http://www.exim.org/ ## Please use the Wiki with this list - http://wiki.exim.org/