mirror of
https://github.com/chatmail/core.git
synced 2026-05-16 13:26:38 +03:00
Add user-configurable option "delete_server_after"
The option sets timer in seconds after which all parts of the message are deleted from the server.
This commit is contained in:
@@ -65,6 +65,14 @@ pub enum Config {
|
|||||||
#[strum(props(default = "0"))]
|
#[strum(props(default = "0"))]
|
||||||
KeyGenType,
|
KeyGenType,
|
||||||
|
|
||||||
|
/// Timer in seconds after which the message is deleted from the
|
||||||
|
/// server.
|
||||||
|
///
|
||||||
|
/// Equals to -1 by default, which means the message is never
|
||||||
|
/// deleted.
|
||||||
|
#[strum(props(default = "-1"))]
|
||||||
|
DeleteServerAfter,
|
||||||
|
|
||||||
SaveMimeHeaders,
|
SaveMimeHeaders,
|
||||||
ConfiguredAddr,
|
ConfiguredAddr,
|
||||||
ConfiguredMailServer,
|
ConfiguredMailServer,
|
||||||
|
|||||||
@@ -192,7 +192,6 @@ pub fn dc_receive_imf(
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
// if we delete we don't need to try moving messages
|
|
||||||
if needs_delete_job && !created_db_entries.is_empty() {
|
if needs_delete_job && !created_db_entries.is_empty() {
|
||||||
for db_entry in &created_db_entries {
|
for db_entry in &created_db_entries {
|
||||||
job_add(
|
job_add(
|
||||||
@@ -204,7 +203,29 @@ pub fn dc_receive_imf(
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
context.do_heuristics_moves(server_folder.as_ref(), insert_msg_id);
|
// Get user-configured server deletion
|
||||||
|
let delete_server_after = context.get_config_int(Config::DeleteServerAfter);
|
||||||
|
|
||||||
|
if delete_server_after != 0 {
|
||||||
|
// Move message if we don't delete it immediately.
|
||||||
|
context.do_heuristics_moves(server_folder.as_ref(), insert_msg_id);
|
||||||
|
}
|
||||||
|
|
||||||
|
if delete_server_after >= 0 {
|
||||||
|
info!(
|
||||||
|
context,
|
||||||
|
"Scheduling message deletion in {} seconds", delete_server_after
|
||||||
|
);
|
||||||
|
for db_entry in &created_db_entries {
|
||||||
|
job_add(
|
||||||
|
context,
|
||||||
|
Action::DeleteMsgOnImap,
|
||||||
|
db_entry.1.to_u32() as i32,
|
||||||
|
Params::new(),
|
||||||
|
delete_server_after as i64,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
info!(
|
info!(
|
||||||
|
|||||||
Reference in New Issue
Block a user