2018-01-17 01:57:27 +08:00
|
|
|
rules {
|
2018-12-16 04:23:42 +08:00
|
|
|
QUARANTINE {
|
|
|
|
backend = "http";
|
|
|
|
url = "http://nginx:9081/pipe.php";
|
2019-10-10 18:38:24 +08:00
|
|
|
selector = "reject_no_global_bl";
|
2018-12-16 04:23:42 +08:00
|
|
|
formatter = "default";
|
|
|
|
meta_headers = true;
|
|
|
|
}
|
|
|
|
RLINFO {
|
|
|
|
backend = "http";
|
|
|
|
url = "http://nginx:9081/pipe_rl.php";
|
|
|
|
selector = "ratelimited";
|
|
|
|
formatter = "json";
|
|
|
|
}
|
2020-04-16 21:42:10 +08:00
|
|
|
PUSHOVERMAIL {
|
2020-04-11 02:55:49 +08:00
|
|
|
backend = "http";
|
|
|
|
url = "http://nginx:9081/pushover.php";
|
2020-04-16 21:42:10 +08:00
|
|
|
selector = "mailcow_rcpt";
|
2020-04-11 02:55:49 +08:00
|
|
|
# Only return msgid, do not parse the full message
|
|
|
|
formatter = "msgid";
|
|
|
|
meta_headers = true;
|
|
|
|
}
|
2018-12-16 04:23:42 +08:00
|
|
|
}
|
2020-04-11 02:55:49 +08:00
|
|
|
|
2018-12-16 04:23:42 +08:00
|
|
|
custom_select {
|
2020-04-16 21:42:10 +08:00
|
|
|
mailcow_rcpt = <<EOD
|
2020-04-11 02:55:49 +08:00
|
|
|
return function(task)
|
|
|
|
local action = task:get_metric_action('default')
|
|
|
|
if task:has_symbol('NO_LOG_STAT') or (action == 'reject' or action == 'add header' or action == 'rewrite subject') then
|
|
|
|
return false
|
|
|
|
else
|
2020-04-16 21:42:10 +08:00
|
|
|
if task:get_symbol("RCPT_MAILCOW_DOMAIN") then
|
2020-04-11 02:55:49 +08:00
|
|
|
return true
|
|
|
|
end
|
|
|
|
return false
|
|
|
|
end
|
|
|
|
end
|
|
|
|
EOD;
|
2018-12-16 04:23:42 +08:00
|
|
|
ratelimited = <<EOD
|
|
|
|
return function(task)
|
|
|
|
local ratelimited = task:get_symbol("RATELIMITED")
|
|
|
|
if ratelimited then
|
|
|
|
return true
|
|
|
|
end
|
2019-05-02 04:50:38 +08:00
|
|
|
return false
|
2018-12-16 04:23:42 +08:00
|
|
|
end
|
2019-10-10 18:38:24 +08:00
|
|
|
EOD;
|
|
|
|
reject_no_global_bl = <<EOD
|
|
|
|
return function(task)
|
2020-10-24 02:23:26 +08:00
|
|
|
if not task:has_symbol('GLOBAL_SMTP_FROM_BL')
|
|
|
|
and not task:has_symbol('GLOBAL_MIME_FROM_BL')
|
|
|
|
and not task:has_symbol('LOCAL_BL_ASN')
|
|
|
|
and not task:has_symbol('GLOBAL_RCPT_BL')
|
|
|
|
and not task:has_symbol('MAILCOW_BLACK') then
|
|
|
|
local action = task:get_metric_action('default')
|
|
|
|
return (action == 'reject')
|
2019-10-10 18:38:24 +08:00
|
|
|
end
|
|
|
|
return false
|
|
|
|
end
|
2018-12-16 04:23:42 +08:00
|
|
|
EOD;
|
2018-01-17 01:57:27 +08:00
|
|
|
}
|
2020-04-11 02:55:49 +08:00
|
|
|
|
|
|
|
custom_format {
|
|
|
|
msgid = <<EOD
|
|
|
|
return function(task)
|
|
|
|
return task:get_message_id()
|
|
|
|
end
|
|
|
|
EOD;
|
|
|
|
}
|
|
|
|
|