Browse Source

[Fix] Follow the traditional symbols conventions in RCPT_COUNT rule

tags/1.5.3
Vsevolod Stakhov 7 years ago
parent
commit
a1c871c9f6
1 changed files with 89 additions and 9 deletions
  1. 89
    9
      rules/headers_checks.lua

+ 89
- 9
rules/headers_checks.lua View File

local fun = require "fun" local fun = require "fun"
local E = {} local E = {}


rspamd_config.CHECK_RECEIVED = {
callback = function (task)
local rcvd_cb_id = rspamd_config:register_symbol{
name = 'CHECK_RECEIVED',
type = 'callback',
callback = function(task)
local cnts = {
[1] = 'ONE',
[2] = 'TWO',
[3] = 'THREE',
[5] = 'FIVE',
[7] = 'SEVEN',
[12] = 'TWELVE'
}
local def = 'ZERO'
local received = task:get_received_headers() local received = task:get_received_headers()
received = fun.filter(function(h)
return not h['artificial']
end, received):totable()
task:insert_result('RCVD_COUNT_' .. #received, 1.0)
local nreceived = fun.reduce(function(acc, rcvd)
return acc + 1
end, 0, fun.filter(function(h)
return not h['artificial']
end, received))

for k,v in pairs(cnts) do
if nreceived >= tonumber(k) then
def = v
end
end

task:insert_result('RCVD_COUNT_' .. def, 1.0, tostring(nreceived))
end end
} }


rspamd_config:register_symbol{
name = 'RCVD_COUNT_ZERO',
score = 0.0,
parent = rcvd_cb_id,
type = 'virtual',
description = 'No received',
group = 'header',
}
rspamd_config:register_symbol{
name = 'RCVD_COUNT_ONE',
score = 0.0,
parent = rcvd_cb_id,
type = 'virtual',
description = 'One received',
group = 'header',
}
rspamd_config:register_symbol{
name = 'RCVD_COUNT_TWO',
score = 0.0,
parent = rcvd_cb_id,
type = 'virtual',
description = 'Two received',
group = 'header',
}
rspamd_config:register_symbol{
name = 'RCVD_COUNT_THREE',
score = 0.0,
parent = rcvd_cb_id,
type = 'virtual',
description = '3-5 received',
group = 'header',
}
rspamd_config:register_symbol{
name = 'RCVD_COUNT_FIVE',
score = 0.0,
parent = rcvd_cb_id,
type = 'virtual',
description = '5-7 received',
group = 'header',
}
rspamd_config:register_symbol{
name = 'RCVD_COUNT_SEVEN',
score = 0.0,
parent = rcvd_cb_id,
type = 'virtual',
description = '7-11 received',
group = 'header',
}
rspamd_config:register_symbol{
name = 'RCVD_COUNT_TWELVE',
score = 0.0,
parent = rcvd_cb_id,
type = 'virtual',
description = '12+ received',
group = 'header',
}

rspamd_config.HAS_X_PRIO = { rspamd_config.HAS_X_PRIO = {
callback = function (task) callback = function (task)
local xprio = task:get_header('X-Priority'); local xprio = task:get_header('X-Priority');
description = 'Reply-To display name matches From', description = 'Reply-To display name matches From',
group = 'header', group = 'header',
} }
-- XXX: fix it
rspamd_config:register_symbol{ rspamd_config:register_symbol{
name = 'FROM_NAME_HAS_TITLE', name = 'FROM_NAME_HAS_TITLE',
score = 2.0, score = 2.0,
} }
rspamd_config:register_dependency(check_replyto_id, 'FROM_NAME_HAS_TITLE') rspamd_config:register_dependency(check_replyto_id, 'FROM_NAME_HAS_TITLE')


local check_mime_id = rspamd_config:register_callback_symbol('CHECK_MIME', 1.0,
function (task)
local check_mime_id = rspamd_config:register_symbol{
name = 'CHECK_MIME',
type = 'callback',
callback = function(task)
local parts = task:get_parts() local parts = task:get_parts()
if not parts then return false end if not parts then return false end


end end
end end
end end
)
}


rspamd_config:register_symbol{ rspamd_config:register_symbol{
name = 'MISSING_MIME_VERSION', name = 'MISSING_MIME_VERSION',

Loading…
Cancel
Save