]> source.dussan.org Git - rspamd.git/commitdiff
[Feature] Allow to specify custom delimiter in emails plugin
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Fri, 7 Jul 2017 18:16:31 +0000 (19:16 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Fri, 7 Jul 2017 18:16:31 +0000 (19:16 +0100)
src/plugins/lua/emails.lua

index ba390383c154e874077b6754baa4fc9e58fa607c..cd632b85e21ac6aca0203277de6c3e521a271115 100644 (file)
@@ -39,11 +39,7 @@ local function check_email_rule(task, rule, addr)
     if rule['domain_only'] then
       email = addr.domain
     else
-      if not rule['hash'] then
-        email = string.format('%s.%s', addr.user, addr.domain)
-      else
-        email = string.format('%s@%s', addr.user, addr.domain)
-      end
+      email = string.format('%s%s%s', addr.user, rule.delimiter, addr.domain)
     end
 
     local function emails_dns_cb(_, _, results, err)
@@ -97,7 +93,7 @@ local function check_email_rule(task, rule, addr)
           task:get_message_id(), key, rule['symbol'])
       end
     else
-      local key = string.format('%s@%s', addr.user, addr.domain)
+      local key = string.format('%s%s%s', addr.user, rule.delimiter, addr.domain)
       if rule['map']:get_key(key) then
         task:insert_result(rule['symbol'], 1)
         logger.infox(task, '<%1> email: \'%2\' is found in list: %3',
@@ -114,7 +110,8 @@ local function gen_check_emails(rule)
     local checked = {}
     if emails and not rule.skip_body then
       for _,addr in ipairs(emails) do
-        local to_check = string.format('%s@%s', addr:get_user(), addr:get_host())
+        local to_check = string.format('%s%s%s', addr:get_user(),
+          rule.delimiter, addr:get_host())
         local naddr = {
           user = (addr:get_user() or ''):lower(),
           domain = (addr:get_host() or ''):lower(),
@@ -161,6 +158,10 @@ if opts and type(opts) == 'table' then
         rule['symbol'] = k
       end
 
+      if not rule['delimiter'] then
+        rule['delimiter'] = "@"
+      end
+
       if rule['map'] then
         rule['name'] = rule['map']
         rule['map'] = rspamd_config:add_map({