# See https://rspamd.com/doc/tutorials/writing_rules.html for details
chartable {
- .include(try=true,priority=5) "${DBDIR}/dynamic/chartable.conf"
- .include(try=true,priority=1) "$LOCAL_CONFDIR/local.d/chartable.conf"
- .include(try=true,priority=10) "$LOCAL_CONFDIR/override.d/chartable.conf"
threshold = 0.300000;
symbol = "R_MIXED_CHARSET";
+ .include(try=true,priority=5) "${DBDIR}/dynamic/chartable.conf"
+ .include(try=true,priority=1,duplicate=merge) "$LOCAL_CONFDIR/local.d/chartable.conf"
+ .include(try=true,priority=10) "$LOCAL_CONFDIR/override.d/chartable.conf"
}
# See https://rspamd.com/doc/tutorials/writing_rules.html for details
dkim {
- .include(try=true,priority=5) "${DBDIR}/dynamic/dkim.conf"
- .include(try=true,priority=1) "$LOCAL_CONFDIR/local.d/dkim.conf"
- .include(try=true,priority=10) "$LOCAL_CONFDIR/override.d/dkim.conf"
dkim_cache_size = 2k;
dkim_cache_expire = 1d;
time_jitter = 6h;
trusted_only = false;
skip_multi = false;
+
+ .include(try=true,priority=5) "${DBDIR}/dynamic/dkim.conf"
+ .include(try=true,priority=1,duplicate=merge) "$LOCAL_CONFDIR/local.d/dkim.conf"
+ .include(try=true,priority=10) "$LOCAL_CONFDIR/override.d/dkim.conf"
}
emails {
.include(try=true,priority=5) "${DBDIR}/dynamic/emails.conf"
- .include(try=true,priority=1) "$LOCAL_CONFDIR/local.d/emails.conf"
+ .include(try=true,priority=1,duplicate=merge) "$LOCAL_CONFDIR/local.d/emails.conf"
.include(try=true,priority=10) "$LOCAL_CONFDIR/override.d/emails.conf"
}
# See https://rspamd.com/doc/tutorials/writing_rules.html for details
forged_recipients {
- .include(try=true,priority=5) "${DBDIR}/dynamic/forged_recipients.conf"
- .include(try=true,priority=1) "$LOCAL_CONFDIR/local.d/forged_recipients.conf"
- .include(try=true,priority=10) "$LOCAL_CONFDIR/override.d/forged_recipients.conf"
symbol_sender = "FORGED_SENDER";
symbol_rcpt = "FORGED_RECIPIENTS";
+
+ .include(try=true,priority=5) "${DBDIR}/dynamic/forged_recipients.conf"
+ .include(try=true,priority=1,duplicate=merge) "$LOCAL_CONFDIR/local.d/forged_recipients.conf"
+ .include(try=true,priority=10) "$LOCAL_CONFDIR/override.d/forged_recipients.conf"
}
# See https://rspamd.com/doc/tutorials/writing_rules.html for details
hfilter {
- .include(try=true,priority=5) "${DBDIR}/dynamic/hfilter.conf"
- .include(try=true,priority=1) "$LOCAL_CONFDIR/local.d/hfilter.conf"
- .include(try=true,priority=10) "$LOCAL_CONFDIR/override.d/hfilter.conf"
helo_enabled = true;
hostname_enabled = true;
url_enabled = true;
rcpt_enabled = true;
mid_enabled = false;
rcpt_enabled = true;
+
+ .include(try=true,priority=5) "${DBDIR}/dynamic/hfilter.conf"
+ .include(try=true,priority=1,duplicate=merge) "$LOCAL_CONFDIR/local.d/hfilter.conf"
+ .include(try=true,priority=10) "$LOCAL_CONFDIR/override.d/hfilter.conf"
}
# See https://rspamd.com/doc/tutorials/writing_rules.html for details
ip_score {
- .include(try=true,priority=5) "${DBDIR}/dynamic/ip_score.conf"
- .include(try=true,priority=1) "$LOCAL_CONFDIR/local.d/ip_score.conf"
- .include(try=true,priority=10) "$LOCAL_CONFDIR/override.d/ip_score.conf"
# servers = "localhost";
# treshold = 100;
# reject_score = 3;
# no_action_score = -2;
# add_header_score = 1;
# whitelist = "file:///ip_map";
+ .include(try=true,priority=5) "${DBDIR}/dynamic/ip_score.conf"
+ .include(try=true,priority=1,duplicate=merge) "$LOCAL_CONFDIR/local.d/ip_score.conf"
+ .include(try=true,priority=10) "$LOCAL_CONFDIR/override.d/ip_score.conf"
}
# See https://rspamd.com/doc/tutorials/writing_rules.html for details
maillist {
+ symbol = "MAILLIST";
.include(try=true,priority=5) "${DBDIR}/dynamic/maillist.conf"
- .include(try=true,priority=1) "$LOCAL_CONFDIR/local.d/maillist.conf"
+ .include(try=true,priority=1,duplicate=merge) "$LOCAL_CONFDIR/local.d/maillist.conf"
.include(try=true,priority=10) "$LOCAL_CONFDIR/override.d/maillist.conf"
- symbol = "MAILLIST";
}
# See https://rspamd.com/doc/tutorials/writing_rules.html for details
mime_types {
- .include(try=true,priority=5) "${DBDIR}/dynamic/mime_types.conf"
- .include(try=true,priority=1) "$LOCAL_CONFDIR/local.d/mime_types.conf"
- .include(try=true,priority=10) "$LOCAL_CONFDIR/override.d/mime_types.conf"
file = "${CONFDIR}/mime_types.inc";
# Match specific extensions to specific content types
"application/pdf"
];
}
+
+ .include(try=true,priority=5) "${DBDIR}/dynamic/mime_types.conf"
+ .include(try=true,priority=1,duplicate=merge) "$LOCAL_CONFDIR/local.d/mime_types.conf"
+ .include(try=true,priority=10) "$LOCAL_CONFDIR/override.d/mime_types.conf"
}
multimap {
.include(try=true,priority=5) "${DBDIR}/dynamic/multimap.conf"
- .include(try=true,priority=1) "$LOCAL_CONFDIR/local.d/multimap.conf"
+ .include(try=true,priority=1,duplicate=merge) "$LOCAL_CONFDIR/local.d/multimap.conf"
.include(try=true,priority=10) "$LOCAL_CONFDIR/override.d/multimap.conf"
}
# See https://rspamd.com/doc/tutorials/writing_rules.html for details
once_received {
- .include(try=true,priority=5) "${DBDIR}/dynamic/once_received.conf"
- .include(try=true,priority=1) "$LOCAL_CONFDIR/local.d/once_received.conf"
- .include(try=true,priority=10) "$LOCAL_CONFDIR/override.d/once_received.conf"
good_host = "mail";
bad_host = "static";
bad_host = "dynamic";
symbol_strict = "ONCE_RECEIVED_STRICT";
symbol = "ONCE_RECEIVED";
+
+ .include(try=true,priority=5) "${DBDIR}/dynamic/once_received.conf"
+ .include(try=true,priority=1,duplicate=merge) "$LOCAL_CONFDIR/local.d/once_received.conf"
+ .include(try=true,priority=10) "$LOCAL_CONFDIR/override.d/once_received.conf"
}
# See https://rspamd.com/doc/tutorials/writing_rules.html for details
phishing {
- .include(try=true,priority=5) "${DBDIR}/dynamic/phishing.conf"
- .include(try=true,priority=1) "$LOCAL_CONFDIR/local.d/phishing.conf"
- .include(try=true,priority=10) "$LOCAL_CONFDIR/override.d/phishing.conf"
symbol = "PHISHING";
# Disabled by default
openphish_enabled = false;
"$LOCAL_CONFDIR/local.d/redirectors.inc:LOCAL_REDIRECTOR_FALSE"
];
+ .include(try=true,priority=5) "${DBDIR}/dynamic/phishing.conf"
+ .include(try=true,priority=1,duplicate=merge) "$LOCAL_CONFDIR/local.d/phishing.conf"
+ .include(try=true,priority=10) "$LOCAL_CONFDIR/override.d/phishing.conf"
}
# See https://rspamd.com/doc/tutorials/writing_rules.html for details
ratelimit {
- .include(try=true,priority=5) "${DBDIR}/dynamic/ratelimit.conf"
- .include(try=true,priority=1) "$LOCAL_CONFDIR/local.d/ratelimit.conf"
- .include(try=true,priority=10) "$LOCAL_CONFDIR/override.d/ratelimit.conf"
rates {
# Limit for all mail per recipient (burst 100, rate 2 per minute)
to = [100, 0.033333333];
#symbol = "R_RATELIMIT";
whitelisted_rcpts = "postmaster,mailer-daemon";
max_rcpt = 5;
+
+ .include(try=true,priority=5) "${DBDIR}/dynamic/ratelimit.conf"
+ .include(try=true,priority=1,duplicate=merge) "$LOCAL_CONFDIR/local.d/ratelimit.conf"
+ .include(try=true,priority=10) "$LOCAL_CONFDIR/override.d/ratelimit.conf"
}
# See https://rspamd.com/doc/tutorials/writing_rules.html for details
rbl {
- .include(try=true,priority=5) "${DBDIR}/dynamic/rbl.conf"
- .include(try=true,priority=1) "$LOCAL_CONFDIR/local.d/rbl.conf"
- .include(try=true,priority=10) "$LOCAL_CONFDIR/override.d/rbl.conf"
default_from = true;
default_received = false;
default_exclude_users = true;
}
}
+
+ .include(try=true,priority=5) "${DBDIR}/dynamic/rbl.conf"
+ .include(try=true,priority=1,duplicate=merge) "$LOCAL_CONFDIR/local.d/rbl.conf"
+ .include(try=true,priority=10) "$LOCAL_CONFDIR/override.d/rbl.conf"
}
# See https://rspamd.com/doc/tutorials/writing_rules.html for details
regexp {
+ max_size = 1M;
+
.include(try=true,priority=5) "${DBDIR}/dynamic/regexp.conf"
- .include(try=true,priority=1) "$LOCAL_CONFDIR/local.d/regexp.conf"
+ .include(try=true,priority=1,duplicate=merge) "$LOCAL_CONFDIR/local.d/regexp.conf"
.include(try=true,priority=10) "$LOCAL_CONFDIR/override.d/regexp.conf"
- max_size = 1M;
}
# See https://rspamd.com/doc/tutorials/writing_rules.html for details
rspamd_update {
- .include(try=true,priority=5) "${DBDIR}/dynamic/rspamd_update.conf"
- .include(try=true,priority=1) "$LOCAL_CONFDIR/local.d/rspamd_update.conf"
- .include(try=true,priority=10) "$LOCAL_CONFDIR/override.d/rspamd_update.conf"
rules = "sign+http://rspamd.com/update/rspamd-${BRANCH_VERSION}.ucl";
key = "qxuogdh5eghytji1utkkte1dn3n81c3y5twe61uzoddzwqzuxxyb";
+
+ .include(try=true,priority=5) "${DBDIR}/dynamic/rspamd_update.conf"
+ .include(try=true,priority=1,duplicate=merge) "$LOCAL_CONFDIR/local.d/rspamd_update.conf"
+ .include(try=true,priority=10) "$LOCAL_CONFDIR/override.d/rspamd_update.conf"
}
# See https://rspamd.com/doc/tutorials/writing_rules.html for details
spf {
- .include(try=true,priority=5) "${DBDIR}/dynamic/spf.conf"
- .include(try=true,priority=1) "$LOCAL_CONFDIR/local.d/spf.conf"
- .include(try=true,priority=10) "$LOCAL_CONFDIR/override.d/spf.conf"
spf_cache_size = 2k;
spf_cache_expire = 1d;
+
+ .include(try=true,priority=5) "${DBDIR}/dynamic/spf.conf"
+ .include(try=true,priority=1,duplicate=merge) "$LOCAL_CONFDIR/local.d/spf.conf"
+ .include(try=true,priority=10) "$LOCAL_CONFDIR/override.d/spf.conf"
}
# See https://rspamd.com/doc/tutorials/writing_rules.html for details
surbl {
- .include(try=true,priority=5) "${DBDIR}/dynamic/surbl.conf"
- .include(try=true,priority=1) "$LOCAL_CONFDIR/local.d/surbl.conf"
- .include(try=true,priority=10) "$LOCAL_CONFDIR/override.d/surbl.conf"
whitelist = "file://$CONFDIR/surbl-whitelist.inc";
exceptions = "file://$CONFDIR/2tld.inc";
}
no_ip = true;
}
+
+ .include(try=true,priority=5) "${DBDIR}/dynamic/surbl.conf"
+ .include(try=true,priority=1,duplicate=merge) "$LOCAL_CONFDIR/local.d/surbl.conf"
+ .include(try=true,priority=10) "$LOCAL_CONFDIR/override.d/surbl.conf"
}
# See https://rspamd.com/doc/tutorials/writing_rules.html for details
whitelist {
- .include(try=true,priority=5) "${DBDIR}/dynamic/whitelist.conf"
- .include(try=true,priority=1) "$LOCAL_CONFDIR/local.d/whitelist.conf"
- .include(try=true,priority=10) "$LOCAL_CONFDIR/override.d/whitelist.conf"
rules {
"WHITELIST_SPF" = {
valid_spf = true;
description = "Mail comes from the whitelisted domain and has valid DMARC and DKIM policies";
}
}
+
+ .include(try=true,priority=5) "${DBDIR}/dynamic/whitelist.conf"
+ .include(try=true,priority=1,duplicate=merge) "$LOCAL_CONFDIR/local.d/whitelist.conf"
+ .include(try=true,priority=10) "$LOCAL_CONFDIR/override.d/whitelist.conf"
}
options {
.include "$CONFDIR/options.inc"
- .include(try=true; priority=1) "$LOCAL_CONFDIR/local.d/options.inc"
+ .include(try=true; priority=1,duplicate=merge) "$LOCAL_CONFDIR/local.d/options.inc"
.include(try=true; priority=10) "$LOCAL_CONFDIR/override.d/options.inc"
}
type = "console";
systemd = true;
.include "$CONFDIR/logging.inc"
- .include(try=true; priority=1) "$LOCAL_CONFDIR/local.d/logging.inc"
+ .include(try=true; priority=1,duplicate=merge) "$LOCAL_CONFDIR/local.d/logging.inc"
.include(try=true; priority=10) "$LOCAL_CONFDIR/override.d/logging.inc"
}
worker {
bind_socket = "systemd:0";
.include "$CONFDIR/worker-normal.inc"
- .include(try=true; priority=1) "$LOCAL_CONFDIR/local.d/worker-normal.inc"
+ .include(try=true; priority=1,duplicate=merge) "$LOCAL_CONFDIR/local.d/worker-normal.inc"
.include(try=true; priority=10) "$LOCAL_CONFDIR/override.d/worker-normal.inc"
}
worker {
bind_socket = "systemd:1";
.include "$CONFDIR/worker-controller.inc"
- .include(try=true; priority=1) "$LOCAL_CONFDIR/local.d/worker-controller.inc"
+ .include(try=true; priority=1,duplicate=merge) "$LOCAL_CONFDIR/local.d/worker-controller.inc"
.include(try=true; priority=10) "$LOCAL_CONFDIR/override.d/worker-controller.inc"
}
options {
pidfile = "$RUNDIR/rspamd.pid";
.include "$CONFDIR/options.inc"
- .include(try=true; priority=1) "$LOCAL_CONFDIR/local.d/options.inc"
+ .include(try=true; priority=1,duplicate=merge) "$LOCAL_CONFDIR/local.d/options.inc"
.include(try=true; priority=10) "$LOCAL_CONFDIR/override.d/options.inc"
}
type = "file";
filename = "$LOGDIR/rspamd.log";
.include "$CONFDIR/logging.inc"
- .include(try=true; priority=1) "$LOCAL_CONFDIR/local.d/logging.inc"
+ .include(try=true; priority=1,duplicate=merge) "$LOCAL_CONFDIR/local.d/logging.inc"
.include(try=true; priority=10) "$LOCAL_CONFDIR/override.d/logging.inc"
}
worker {
bind_socket = "*:11333";
.include "$CONFDIR/worker-normal.inc"
- .include(try=true; priority=1) "$LOCAL_CONFDIR/local.d/worker-normal.inc"
+ .include(try=true; priority=1,duplicate=merge) "$LOCAL_CONFDIR/local.d/worker-normal.inc"
.include(try=true; priority=10) "$LOCAL_CONFDIR/override.d/worker-normal.inc"
}
worker {
bind_socket = "localhost:11334";
.include "$CONFDIR/worker-controller.inc"
- .include(try=true; priority=1) "$LOCAL_CONFDIR/local.d/worker-controller.inc"
+ .include(try=true; priority=1,duplicate=merge) "$LOCAL_CONFDIR/local.d/worker-controller.inc"
.include(try=true; priority=10) "$LOCAL_CONFDIR/override.d/worker-controller.inc"
}
#worker {
# bind_socket = "*:11335";
# .include "$CONFDIR/worker-fuzzy.inc"
-# .include(try=true; priority=1) "$LOCAL_CONFDIR/local.d/worker-fuzzy.inc"
+# .include(try=true; priority=1,duplicate=merge) "$LOCAL_CONFDIR/local.d/worker-fuzzy.inc"
# .include(try=true; priority=10) "$LOCAL_CONFDIR/override.d/worker-fuzzy.inc"
#}