Updated IMAP autolearn behaviour to deal with Apple Mail's shenanigans

This commit is contained in:
mdecimus
2025-12-14 16:17:39 +01:00
parent e1c1e9a6d4
commit 4675b18491
5 changed files with 31 additions and 18 deletions

View File

@@ -451,21 +451,24 @@ impl PyzorConfig {
impl ClassifierConfig {
pub fn parse(config: &mut Config) -> Option<Self> {
if !config
.property_or_default("spam-filter.classifier.enable", "true")
.unwrap_or(true)
{
return None;
}
let ccfh = match config.value("spam-filter.classifier.model") {
Some("ftrl-fh") | None => false,
Some("ftrl-ccfh") => true,
Some("disabled") => return None,
Some(other) => {
config.new_build_error(
"spam-filter.classifier.model",
format!("Invalid model type: {}", other),
);
return None;
}
};
let w_params = FtrlParameters::parse(config, "spam-filter.classifier.parameters", 20);
let i_params = if config
.property_or_default("spam-filter.classifier.ccfh.enable", "false")
.unwrap_or(false)
{
let i_params = if ccfh {
Some(FtrlParameters::parse(
config,
"spam-filter.classifier.ccfh.parameters",
"spam-filter.classifier.parameters.ccfh",
w_params.feature_hash_size - 2,
))
} else {