Fix Sieve: Do not keep copies of redirected messages when keep is not specified

This commit is contained in:
Maurus Decimus
2026-06-15 15:53:34 +02:00
parent 0d131afc03
commit 58d0475cd2
2 changed files with 4 additions and 1 deletions

View File

@@ -145,6 +145,7 @@ impl SieveScriptIngest for Server {
let mut do_discard = false;
let mut do_deliver = false;
let mut do_redirect = false;
let mut reject_reason = None;
let mut messages: Vec<SieveMessage> = vec![SieveMessage {
@@ -412,6 +413,7 @@ impl SieveScriptIngest for Server {
recipients,
message: message.raw_message.to_vec(),
});
do_redirect = true;
} else {
trc::event!(
Sieve(SieveEvent::MessageTooLarge),
@@ -487,7 +489,7 @@ impl SieveScriptIngest for Server {
}
// Fail-safe, no discard and no keep seen, assume that something went wrong and file anyway.
if !do_deliver && !do_discard {
if !do_deliver && !do_discard && !do_redirect {
messages[0].file_into.push(INBOX_ID);
}