7181ee4658
[PHP-FPM] Create PHP-FPM listeners 9001 (system) and 9002 (web), drop 9000 [Rspamd] Parse quarantine messages as utf8 [Rspamd] Use new schema for Rspamd bayes hashes and expire them in Redis [SOGo] Change default logo [SOGo] Use different keyserver by default in Dockerfile [Rspamd] Add bad ASN list (disabled by default) [Watchdog] Change the way we check PHP-FPM, change SOGo check [Nginx] Change ports according to new PHP-FPM listeners [Update] Fix PHP-FPM ports for existing non-mailcow Nginx sites
61 lines
1.1 KiB
Plaintext
61 lines
1.1 KiB
Plaintext
classifier "bayes" {
|
|
tokenizer {
|
|
name = "osb";
|
|
}
|
|
|
|
backend = "redis";
|
|
servers = "redis:6379";
|
|
min_tokens = 11;
|
|
min_learns = 20;
|
|
autolearn = [-20, 50];
|
|
new_schema = true;
|
|
expiry = 50d;
|
|
per_user = <<EOD
|
|
return function(task)
|
|
local rcpt = task:get_recipients(1)
|
|
|
|
if rcpt then
|
|
one_rcpt = rcpt[1]
|
|
if one_rcpt['domain'] then
|
|
return one_rcpt['domain']
|
|
end
|
|
end
|
|
|
|
return nil
|
|
end
|
|
EOD
|
|
|
|
statfile {
|
|
symbol = "BAYES_HAM";
|
|
spam = false;
|
|
}
|
|
statfile {
|
|
symbol = "BAYES_SPAM";
|
|
spam = true;
|
|
}
|
|
learn_condition =<<EOD
|
|
return function(task, is_spam, is_unlearn)
|
|
local prob = task:get_mempool():get_variable('bayes_prob', 'double')
|
|
|
|
if prob then
|
|
local in_class = false
|
|
local cl
|
|
if is_spam then
|
|
cl = 'spam'
|
|
in_class = prob >= 0.95
|
|
else
|
|
cl = 'ham'
|
|
in_class = prob <= 0.05
|
|
end
|
|
|
|
if in_class then
|
|
return false,string.format('already in class %s; probability %.2f%%',
|
|
cl, math.abs((prob - 0.5) * 200.0))
|
|
end
|
|
end
|
|
|
|
return true
|
|
end
|
|
EOD
|
|
}
|