diff --git a/nixos/modules/mail.nix b/nixos/modules/mail.nix index 9d98d73..a481bcf 100644 --- a/nixos/modules/mail.nix +++ b/nixos/modules/mail.nix @@ -181,7 +181,7 @@ in { "lookup.default.hostname" "certificate.*" ] # the default ones - ++ ["sieve.trusted.*"]; #for macros to be able to include our redirection script + ++ ["sieve.trusted.scripts.*"]; #for macros to be able to include our redirection script sieve.trusted.scripts.redirects.contents = "%{file:/tmp/virt_aliases}%"; # generated redirect script session.data.script = "'redirects'"; @@ -190,6 +190,13 @@ in { # see passwd on azathoth for plaintext or machine secret in encoded format for HTTP Basic AUTH secret = cfg.stalwartAdminHash; }; + store = { + # structured data in SQLite, blobs on filesystem + db.type = "sqlite"; + db.path = "/var/lib/stalwart-mail/data/index.sqlite3"; + fs.type = "fs"; + fs.path = "/var/lib/stalwart-mail/data/blobs"; + }; }; }; }; diff --git a/sieve-rs.patch b/sieve-rs.patch new file mode 100644 index 0000000..1fef1ec --- /dev/null +++ b/sieve-rs.patch @@ -0,0 +1,22 @@ +diff --git a/src/runtime/actions/action_redirect.rs b/src/runtime/actions/action_redirect.rs +index 5b4599d..bfb46b0 100644 +--- a/src/runtime/actions/action_redirect.rs ++++ b/src/runtime/actions/action_redirect.rs +@@ -41,17 +41,6 @@ impl Redirect { + .count() + < ctx.runtime.max_received_headers + { +- // Try to avoid forwarding loops +- if !self.list +- && (address.eq_ignore_ascii_case(ctx.user_address.as_ref()) +- || ctx.envelope.iter().any(|(e, v)| { +- matches!(e, Envelope::From) +- && v.to_string().eq_ignore_ascii_case(address.as_str()) +- })) +- { +- return; +- } +- + if !self.copy && matches!(&ctx.final_event, Some(Event::Keep { .. })) { + ctx.final_event = None; + }