]> git.ipfire.org Git - thirdparty/rspamd.git/commitdiff
[Fix] Do not expose spamtrap messages to SMTP reply
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Mon, 18 Dec 2017 20:11:54 +0000 (20:11 +0000)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Mon, 18 Dec 2017 20:12:18 +0000 (20:12 +0000)
Issue: #1964

src/plugins/lua/spamtrap.lua

index af2523187de10036cb77d073efe42f5cbb934cf9..2e8c2623869219e23ac7b05194aa332b9883fbad 100644 (file)
@@ -21,6 +21,7 @@ local rspamd_logger = require "rspamd_logger"
 local redis_params
 local use_redis = false;
 local M = 'spamtrap'
+local lutil = require "lua_util"
 
 local settings = {
   symbol = 'SPAMTRAP',
@@ -31,7 +32,7 @@ local settings = {
   fuzzy_weight = 10.0,
   key_prefix = 'sptr_',
   check_authed = true,
-  check_local = true
+  check_local = true,
 }
 
 local function spamtrap_cb(task)
@@ -61,8 +62,19 @@ local function spamtrap_cb(task)
       rcpt)
 
     if settings['action'] then
-      task:set_pre_result(settings['action'],
-        string.format('spamtrap found: <%s>', rcpt))
+      rspamd_logger.infox(task, 'spamtrap found: <%s>', rcpt)
+      if settings.smtp_message then
+        task:set_pre_result(settings['action'],
+          lutil.template(settings.smtp_message, {rcpt = rcpt}))
+      else
+        local smtp_message = 'unknown error'
+        if settings.action == 'no action' then
+          smtp_message = 'message accepted'
+        elseif settings.action == 'reject' then
+          smtp_message = 'message rejected'
+        end
+        task:set_pre_result(settings['action'], smtp_message)
+      end
     end
   end