Sławomir Dworaczek via Exim-users wrote on 24.02.2025 0:14:
> thank you very much
> 
> I need to get such a scenario
> 1. bogosity:spam, domain on bogo_lists exists, address on the list
> exists -> transport bogo_transport will not execute, mail reaches the
> recipient
> 2. bogosity:spam, domain on bogo_lists does not exist, address on the
> list exists -> transport bogo_transport will not execute, mail reaches
> the recipient
> 3. bogosity:spam, domain on bogo_lists exists, address on the list does
> not exist -> transport bogo_transport will not execute, mail reaches the
> recipient
> 4. bogosity:ham, it does not matter whether the domain or address is on
> the bogo_lists -> transport bogo_transport will not execute, mail
> reaches the recipient
> 5. 1. bogosity:spam, domain on bogo_lists does not exist, address on the
> list does not exist -> transport bogo_transport will be executed, the
> mail will reach spam


bogo_router:
  transport = bogo_transport
  condition = ${if and{\
                {match{$h_X-Bogosity:}{\N(?i)^Spam\b\N}}\

{bool{${lookup{$sender_address}wildlsearch{/etc/exim/listy_acl/bogo_list}{false}{true}}}}\
              }{true}{false}}
  no_verify

I don't know the details of spam delivery in your config, so I showed
the minimum settings.

Use asterisk as localpart to specify the entire sender domain in the
/etc/exim/listy_acl/bogo_list file:

*@domain.tld


> regards
> ----- Original Message ----- From: "Viktor Ustiuhov via Exim-users"
> <exim-users@lists.exim.org>
> To: "Sławomir Dworaczek via Exim-users" <exim-users@lists.exim.org>
> Sent: Sunday, February 23, 2025 11:30 AM
> Subject: [exim] Re: please check the condition
> 
> 
>> Sławomir Dworaczek wrote on 23.02.2025 10:48:
>>> heloo
>>> great, it works
>>>
>>> condition = ${if and{{match{$h_X-Bogosity:}{\N(?i)^\s*Spam\N}}\
>>> {bool{${lookup{$sender_address_domain}wildlsearch{/etc/exim/listy_acl/bogo_list}{false}{true}}}}}\
>>>
>>>
>>> {true}{false}}
>>
>> ok
>>
>> But there was a mistake in the last condition.
>> Replace \$4 with \$1
>>
>>> and what if I wanted to add a third condition?
>>>
>>> so that it checks if there is a domain OR address on the list?
>>> after adding the line
>>>
>>> condition = ${if and{{match{$h_X-Bogosity:}{\N(?i)^\s*Spam\N}}\
>>> {bool{${lookup{$sender_address_domain}wildlsearch{/etc/exim/listy_acl/bogo_list}{false}{true}}}}}\
>>>
>>>
>>> {bool{${lookup{$sender_address}wildlsearch{/etc/exim/listy_acl/bogo_list}{false}{true}}}}}\
>>>
>>>
>>> {true}{false}}
>>>
>>> Unfortunately, it is so that you have the desired messages from the
>>> email address, but not necessarily the rest from that domain :)
>>> e.g. all kinds of portals with food suppliers, you have notifications
>>> about a purchase made from one address, but 10,000 ads are coming from
>>> the entire domain :)
>>
>>
>> 1. to exclude by only sender address
>>
>> deny condition = ${if
>> match{$h_X-Bogosity:}{\N(?i)^\s*Spam\b\N}{true}{false}}
>>     condition =
>> ${lookup{$sender_address}wildlsearch{/etc/exim/listy_acl/bogo_list}{${if
>> eq{$value}{skip}{true}{false}}}{true}}
>>
>> 1.1. to exclude sender domain domain.tld except sender address
>> mailb...@domain.tld
>>
>> /etc/exim/listy_acl/bogo_list:
>> mailb...@domain.tld : skip
>> *@domain.tld
>>
>> 1.2. to exclude sender addresses mailb...@domain.tld and
>> mailb...@domain.tld but not whole domain domain.tld
>>
>> /etc/exim/listy_acl/bogo_list:
>> mailb...@domain.tld
>> mailb...@domain.tld
>>
>>
>> 2. to exclude by sender address AND address from From: header
>>
>> deny condition = ${if
>> match{$h_X-Bogosity:}{\N(?i)^\s*Spam\b\N}{true}{false}}
>>     condition = ${if and{\
>>
>> {eq{${lookup{$sender_address}wildlsearch{/etc/exim/listy_acl/bogo_list}{${if
>>
>> eq{$value}{skip}{skip}{ok}}}{}}}{ok}}\
>>
>> {eq{${lookup{${address:${sg{${sg{$rh_From:}{:}{\\\\:}}}{\N^\s*\S+@\S+\s*(<\S+@\S+>)\N}{\$1}}}}wildlsearch{/etc/exim/listy_acl/bogo_list}{${if
>>
>> eq{$value}{skip}{skip}{ok}}}{}}}{ok}}\
>>                 }{false}{true}}
>>
>> 2.1. to exclude domain domain.tld except address mailb...@domain.tld
>>
>> /etc/exim/listy_acl/bogo_list:
>> mailb...@domain.tld : skip
>> *@domain.tld
>>
>> 1.2. to exclude mailb...@domain.tld and mailb...@domain.tld but not
>> whole domain domain.tld
>>
>> /etc/exim/listy_acl/bogo_list:
>> mailb...@domain.tld
>> mailb...@domain.tld
>>
>>
>> 3. to exclude by sender address OR address from From: header
>>
>> deny condition = ${if
>> match{$h_X-Bogosity:}{\N(?i)^\s*Spam\b\N}{true}{false}}
>>     condition =
>> ${lookup{$sender_address}wildlsearch{/etc/exim/listy_acl/bogo_list}{${if
>> eq{$value}{skip}{true}{false}}}{true}}
>>     condition =
>> ${lookup{${address:${sg{${sg{$rh_From:}{:}{\\\\:}}}{\N^\s*\S+@\S+\s*(<\S+@\S+>)\N}{\$1}}}}wildlsearch{/etc/exim/listy_acl/bogo_list}{${if
>>
>> eq{$value}{skip}{true}{false}}}{true}}
>>
>> 3.1. to exclude domain domain.tld except address mailb...@domain.tld
>>
>> /etc/exim/listy_acl/bogo_list:
>> mailb...@domain.tld : skip
>> *@domain.tld
>>
>> 3.2. to exclude mailb...@domain.tld and mailb...@domain.tld but not
>> whole domain domain.tld
>>
>> /etc/exim/listy_acl/bogo_list:
>> mailb...@domain.tld
>> mailb...@domain.tld
>>
>>
>> If you specify a value in the lines of the file
>> /etc/exim/listy_acl/bogo_list with excluded addresses, for example, "ok"
>> or "exclude" or another convenient value, then you can simplify the
>> conditions.
>>
>>
>>> regards
>>>
>>> ----- Original Message ----- From: "Viktor Ustiuhov via Exim-users"
>>> <exim-users@lists.exim.org>
>>> To: "Sławomir Dworaczek via Exim-users" <exim-users@lists.exim.org>
>>> Sent: Sunday, February 23, 2025 3:02 AM
>>> Subject: [exim] Re: please check the condition
>>>
>>>
>>>> Sławomir Dworaczek via Exim-users wrote on 23.02.2025 2:06:
>>>>> You're right, only 256 bytes can be in a file
>>>>> Unfortunately, condition behaves as if it didn't work at all, all
>>>>> emails, even those tagged spam, fall into inboxes
>>>>> Regardless of whether they come from external or local domains
>>>>>
>>>>> This is a fragment of the SPAM header:
>>>>> X-Bogofilterd: true
>>>>> X-Bogosity: Spam, tests=bogofilter, spamicity=1.000000, version=1.2.5
>>>>> and this is a fragment of the HAM header:
>>>>> X-Bogofilterd: true
>>>>> X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.5
>>>>
>>>> to exclude by sender address domain:
>>>>
>>>> ${if and{\
>>>> {match{$h_X-Bogosity:}{\N(?i)^\s*Spam\N}}\
>>>>
>>>> {bool{${lookup{$sender_address_domain}wildlsearch{/etc/exim/listy_acl/bogo_list}{false}{true}}}}\
>>>>
>>>>
>>>> }{true}{false}}
>>>>
>>>>
>>>> to exclude by sender address domain and domain from From: header (does
>>>> not work for multiple addresses in From: header):
>>>>
>>>> ${if and{\
>>>> {match{$h_X-Bogosity:}{\N(?i)^\s*Spam\N}}\
>>>>
>>>> {bool{${lookup{$sender_address_domain}wildlsearch{/etc/exim/listy_acl/bogo_list}{false}{true}}}}\
>>>>
>>>>
>>>>
>>>> {bool{${lookup{${domain:${sg{${sg{$rh_From:}{:}{\\\\:}}}{\N^\s*\S+@\S+\s*(<\S+@\S+>)\N}{\$4}}}}wildlsearch{/etc/exim/listy_acl/bogo_list}{false}{true}}}}\
>>>>
>>>>
>>>> }{true}{false}}
>>>>
>>>>
>>>>
>>>>> If I change "if and" to "if or" it seems that searching in the domain
>>>>> file works, but only searching, recognizing the header does not
>>>>>
>>>>> ${if or{\
>>>>> {eqi{$h_X-Bogosity:}{Spam}}\
>>>>> {bool{${lookup{$sender_address_domain}lsearch{/tmp/x.bogook}\{false}{true}}}}\
>>>>>
>>>>>
>>>>> }\ {yes it it spam}{no it is not spam}\}Greetings from Silesia-----
>>>>> Original Message -----From: "Heiko Schlittermann via Exim-users"
>>>>> <exim-users@lists.exim.org>To: "Sławomir Dworaczek"
>>>>> <sla...@dworaczek.info>Sent: Saturday, February 22, 2025 11:09
>>>>> PMSubject: [exim] Re: please check the condition>> --> ## subscription
>>>>> configuration (requires account):>
>>>>> ##https://lists.exim.org/mailman3/postorius/lists/exim-users.lists.exim.org/>
>>>>>
>>>>>
>>>>> ## unsubscribe (doesn't require an account):> ##
>>>>> exim-users-unsubscr...@lists.exim.org> ## Exim details at
>>>>> http://www.exim.org/> ## Please use the Wiki with this list -
>>>>> http://wiki.exim.org/>
>>>>>
>>>>
>>>>
>>>> -- 
>>>> Best wishes Viktor Ustiuhov
>>>> mailto:vic...@corvax.kiev.ua
>>>> public GnuPG/PGP key: https://victor.corvax.kiev.ua/corvax.asc
>>>>
>>>> -- 
>>>> ## subscription configuration (requires account):
>>>> ##
>>>> https://lists.exim.org/mailman3/postorius/lists/exim-users.lists.exim.org/
>>>>
>>>>
>>>> ## unsubscribe (doesn't require an account):
>>>> ## exim-users-unsubscr...@lists.exim.org
>>>> ## Exim details at http://www.exim.org/
>>>> ## Please use the Wiki with this list - http://wiki.exim.org/
>>>>
>>>
>>>
>>
>>
>> -- 
>> Best wishes Viktor Ustiuhov
>> mailto:vic...@corvax.kiev.ua
>> public GnuPG/PGP key: https://victor.corvax.kiev.ua/corvax.asc
>>
>> -- 
>> ## subscription configuration (requires account):
>> ##
>> https://lists.exim.org/mailman3/postorius/lists/exim-users.lists.exim.org/
>>
>> ## unsubscribe (doesn't require an account):
>> ##   exim-users-unsubscr...@lists.exim.org
>> ## Exim details at http://www.exim.org/
>> ## Please use the Wiki with this list - http://wiki.exim.org/
>>
> 
> 


-- 
Best wishes Viktor Ustiuhov
mailto:vic...@corvax.kiev.ua
public GnuPG/PGP key: https://victor.corvax.kiev.ua/corvax.asc

-- 
## subscription configuration (requires account):
##   https://lists.exim.org/mailman3/postorius/lists/exim-users.lists.exim.org/
## unsubscribe (doesn't require an account):
##   exim-users-unsubscr...@lists.exim.org
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://wiki.exim.org/

Reply via email to