From 3ae6262209c01ead76e041245549fb3c47487a0a Mon Sep 17 00:00:00 2001 From: Christian Roessner Date: Thu, 26 Oct 2017 12:56:41 +0200 Subject: [PATCH] [Minor] Added check_authed and check_local for spamtrap --- conf/modules.d/spamtrap.conf | 4 ++++ src/plugins/lua/spamtrap.lua | 12 +++++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/conf/modules.d/spamtrap.conf b/conf/modules.d/spamtrap.conf index e6b676a5d..07c28f9c5 100644 --- a/conf/modules.d/spamtrap.conf +++ b/conf/modules.d/spamtrap.conf @@ -40,6 +40,10 @@ spamtrap { #fuzy_weight = 10; # Redis key prefix #key_prefix = 'sptr_'; + # Skip spamtrap checks for authorized users + #check_authed = false; + # Skip spamtrap checks for local networks + #check_local = false; # !!! Disabled by default !!! enabled = false; diff --git a/src/plugins/lua/spamtrap.lua b/src/plugins/lua/spamtrap.lua index 33805b592..af2523187 100644 --- a/src/plugins/lua/spamtrap.lua +++ b/src/plugins/lua/spamtrap.lua @@ -29,14 +29,24 @@ local settings = { learn_spam = false, fuzzy_flag = 1, fuzzy_weight = 10.0, - key_prefix = 'sptr_' + key_prefix = 'sptr_', + check_authed = true, + check_local = true } local function spamtrap_cb(task) local rcpts = task:get_recipients('smtp') + local authed_user = task:get_user() + local ip_addr = task:get_ip() local called_for_domain = false local target + if ((not settings['check_authed'] and authed_user) or + (not settings['check_local'] and ip_addr and ip_addr:is_local())) then + rspamd_logger.infox(task, "skip spamtrap checks for local networks or authenticated user"); + return + end + local function do_action(rcpt) if settings['learn_fuzzy'] then rspamd_plugins.fuzzy_check.learn(task, -- 2.39.5