瀏覽代碼

Log some infos, sign using dkim separator

andryyy 8 年之前
父節點
當前提交
5afda018ce
共有 1 個文件被更改,包括 23 次插入15 次删除
  1. 23 15
      data/conf/rspamd/local.d/dkim.conf

+ 23 - 15
data/conf/rspamd/local.d/dkim.conf

@@ -1,19 +1,27 @@
 sign_condition =<<EOD
 return function(task)
-        local from = task:get_from('smtp')
-        if from and from[1]['addr'] then
-                lastAtSymbol = from[1]['addr']:find("[^%@]+$")
-                local domain = from[1]['addr']:sub(lastAtSymbol, #from[1]['addr'])
-                local keyfile = io.open("/etc/rspamd/dkim/keys/" .. domain .. ".default")
-                if keyfile then
-                        keyfile:close()
-                        return {
-                                key = "/etc/rspamd/dkim/keys/" .. domain .. ".default",
-                                domain = domain,
-                                selector = "default"
-                        }
-                end
-        end
-        return false
+  local from = task:get_from('smtp')
+  local rspamd_logger = require "rspamd_logger"
+  if not task:get_user() then
+    rspamd_logger.infox(task, "Skip DKIM signing for unauthorized user")
+    return false
+  end
+  if from and from[1]['addr'] then
+    lastAtSymbol = from[1]['addr']:find("[^%@]+$")
+    local domain = from[1]['addr']:sub(lastAtSymbol, #from[1]['addr'])
+    local keyfile = io.open("/data/dkim/keys/" .. domain .. ".dkim")
+    if keyfile then
+      rspamd_logger.infox(task, "DKIM signing mail for authorized user of domain %s", domain)
+      keyfile:close()
+      return {
+        key = "/data/dkim/keys/" .. domain .. ".dkim",
+        domain = domain,
+        selector = "dkim"
+      }
+    else
+      rspamd_logger.infox(task, "Authorized user, but no key file for domain %s - skipped DKIM signing", domain)
+    end
+  end
+  return false
 end
 EOD;