From: Christian Roessner Date: Thu, 26 Oct 2017 10:56:41 +0000 (+0200) Subject: [Minor] Added check_authed and check_local for spamtrap X-Git-Tag: 1.7.0~516^2 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=3ae6262209c01ead76e041245549fb3c47487a0a;p=rspamd.git [Minor] Added check_authed and check_local for spamtrap --- 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,