Delete BCC-self messages after "delete_server_after" time

This commit is contained in:
Alexander Krotov
2020-02-25 02:43:28 +03:00
parent b2f1d9f376
commit 6d216af507
2 changed files with 64 additions and 8 deletions

View File

@@ -1307,14 +1307,48 @@ fn precheck_imf(context: &Context, rfc724_mid: &str, server_folder: &str, server
{
if old_server_folder.is_empty() && old_server_uid == 0 {
info!(context, "[move] detected bcc-self {}", rfc724_mid,);
context.do_heuristics_moves(server_folder.as_ref(), msg_id);
job_add(
context,
Action::MarkseenMsgOnImap,
msg_id.to_u32() as i32,
Params::new(),
0,
);
let delete_server_after = context.get_config_int(Config::DeleteServerAfter);
if delete_server_after != 0 {
context.do_heuristics_moves(server_folder.as_ref(), msg_id);
job_add(
context,
Action::MarkseenMsgOnImap,
msg_id.to_u32() as i32,
Params::new(),
0,
);
}
if delete_server_after >= 0 {
info!(
context,
"Scheduling BCC-self deletion in {} seconds", delete_server_after
);
let msg_ids = match message::get_all_by_rfc724_mid(context, &rfc724_mid) {
Err(err) => {
warn!(
context,
"Cannot get all database records for Message-ID {}: {}",
&rfc724_mid,
err
);
vec![msg_id] // Remove at least the MsgId we know about
}
Ok(msg_ids) => msg_ids,
};
for part_msg_id in msg_ids {
job_add(
context,
Action::DeleteMsgOnImap,
part_msg_id.to_u32() as i32,
Params::new(),
delete_server_after as i64,
);
}
}
} else if old_server_folder != server_folder {
info!(context, "[move] detected moved message {}", rfc724_mid,);
}