[Rspamd-Users] Simple rule trouble.
Michelle Sullivan
michelle at isux.com
Wed Sep 10 14:10:13 UTC 2025
> On 10 Sep 2025, at 23:03, Andrew Lewis via Users <users at lists.rspamd.com> wrote:
>
> Hi Michelle,
>
> On Tue, 2025-09-09 at 22:45 +1000, Michelle Sullivan wrote:
>> Is there a simple way to do this?
>>
>> Specifically for this example:
>>
>> If the incoming IP is NOT in 161.146.0.0/16 and the header From:
>> matches /(ato|mygov|myid|centerlink).*\<.+\@.+\>$/ then score 10.0
>
> In general regex rules are the way to do this sort of thing; the
> relevant limitation is inability to work with IP addresses- you might
> add a Lua condition to deal with that. Lua rules and/or selectors are
> useful for more complex requirements.
>
> -- /etc/rspamd/lua.local.d/regex.lua
>
> local reconf = config.regexp
>
> reconf.MY_RULE_1 = {
> re = [[From=/mygov/H]],
> condition = function(task)
> local ip = task:get_from_ip()
> if not ip and ip:is_valid() then return false end
> if ip:apply_mask(16):to_string() == '161.146.0.0' then return false
> end
> return true
> end,
> score = 10.0,
> }
Fantastic, perfect for the example (which would solve a chunk of rules I have/want) as they are static.
However, still runs into the issue of I have to deploy them which is change control, peer-review, approval, scheduling then finally 4 hours of someone deploying them which is impractical for something that needs a dynamic response.
Thank you, I will use this for a chunk of stuff for sure.
Regards,
Michelle
More information about the Users
mailing list