From: Steve Freegard Date: Fri, 24 Mar 2017 19:31:27 +0000 (+0000) Subject: Add DIRECT_TO_MX rule to once_received plugin X-Git-Tag: 1.5.4~36^2~1 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=5909eaece4fabe11e3224b9416e142ad0284f55c;p=thirdparty%2Frspamd.git Add DIRECT_TO_MX rule to once_received plugin --- diff --git a/conf/modules.d/once_received.conf b/conf/modules.d/once_received.conf index 93080d5317..233d662ef6 100644 --- a/conf/modules.d/once_received.conf +++ b/conf/modules.d/once_received.conf @@ -19,6 +19,7 @@ once_received { bad_host = "dynamic"; symbol_strict = "ONCE_RECEIVED_STRICT"; symbol = "ONCE_RECEIVED"; + symbol_mx = "DIRECT_TO_MX"; .include(try=true,priority=5) "${DBDIR}/dynamic/once_received.conf" .include(try=true,priority=1,duplicate=merge) "$LOCAL_CONFDIR/local.d/once_received.conf" diff --git a/src/plugins/lua/once_received.lua b/src/plugins/lua/once_received.lua index 00161159f6..e1eea2ca50 100644 --- a/src/plugins/lua/once_received.lua +++ b/src/plugins/lua/once_received.lua @@ -18,6 +18,7 @@ limitations under the License. local symbol = 'ONCE_RECEIVED' local symbol_rdns = 'RDNS_NONE' +local symbol_mx = 'DIRECT_TO_MX' -- Symbol for strict checks local symbol_strict = nil local bad_hosts = {} @@ -40,6 +41,12 @@ local function check_quantity_received (task) if recvh and #recvh <= 1 then task:insert_result(symbol, 1) task:insert_result(symbol_strict, 1) + -- Check for MUAs + local ua = task:get_header('User-Agent') + local xm = task:get_header('X-Mailer') + if (ua or xm) then + task:insert_result(symbol_mx, 1, (ua or xm)) + end end task:insert_result(symbol_rdns, 1) else @@ -169,6 +176,8 @@ if opts then elseif n == 'whitelist' then whitelist = rspamd_map_add('once_received', 'whitelist', 'radix', 'once received whitelist') + elseif n == 'symbol_mx' then + symbol_mx = v end end @@ -182,5 +191,10 @@ if opts then type = 'virtual', parent = id }) + rspamd_config:register_symbol({ + name = symbol_mx, + type = 'virtual', + parent = id + }) end end