From da13e20f08e5ead3f082dc011fe582e21bb08c48 Mon Sep 17 00:00:00 2001 From: Herman van Rink Date: Sat, 6 May 2023 00:03:31 +0200 Subject: [PATCH 01/15] Integrate handle_mailbox_soft_deleted.sh into 500-clean_mailboxes.inc.php --- install/lib/installer_base.lib.php | 4 -- install/tpl/server.ini.master | 2 +- .../web/admin/form/server_config.tform.php | 12 ++++- .../templates/server_config_mail_edit.htm | 4 +- .../cron.d/500-clean_mailboxes.inc.php | 48 ++++++++++++++++-- server/scripts/handle_mailbox_soft_deleted.sh | 49 ------------------- 6 files changed, 58 insertions(+), 61 deletions(-) delete mode 100644 server/scripts/handle_mailbox_soft_deleted.sh diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php index d0aab93088..f7ea1282cc 100644 --- a/install/lib/installer_base.lib.php +++ b/install/lib/installer_base.lib.php @@ -3884,10 +3884,6 @@ class installer_base { $root_cron_jobs[] = "0 0 * * * ".$install_dir."/server/scripts/create_daily_nginx_access_logs.sh &> /dev/null"; } - if ($conf['services']['mail'] == 1) { - $root_cron_jobs[] = "30 23 * * * ".$install_dir."/server/scripts/handle_mailbox_soft_deleted.sh &> /dev/null"; - } - foreach($root_cron_jobs as $cron_job) { if(!in_array($cron_job."\n", $existing_root_cron_jobs)) { $existing_root_cron_jobs[] = $cron_job."\n"; diff --git a/install/tpl/server.ini.master b/install/tpl/server.ini.master index 8c2efefa1b..f54879bf44 100644 --- a/install/tpl/server.ini.master +++ b/install/tpl/server.ini.master @@ -56,7 +56,7 @@ relayhost_user= relayhost_password= mailbox_size_limit=0 message_size_limit=0 -mailbox_soft_delete=n +mailbox_soft_delete=0 mailbox_quota_stats=y realtime_blackhole_list=zen.spamhaus.org overquota_notify_threshold=90 diff --git a/interface/web/admin/form/server_config.tform.php b/interface/web/admin/form/server_config.tform.php index 7af535e600..8ac6994e64 100644 --- a/interface/web/admin/form/server_config.tform.php +++ b/interface/web/admin/form/server_config.tform.php @@ -736,9 +736,17 @@ $form["tabs"]['mail'] = array( ), 'mailbox_soft_delete' => array ( 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', + 'formtype' => 'SELECT', 'default' => 'n', - 'value' => array(0 => 'n', 1 => 'y') + 'value' => array( + 0 => 'soft_delete_directly_txt', + -1 => 'soft_delete_keep_indefinately_txt', + 1 => 'soft_delete_keep_1_txt', + 7 => 'soft_delete_keep_7_txt', + 30 => 'soft_delete_keep_30_txt', + 90 => 'soft_delete_keep_90_txt', + 365 => 'soft_delete_keep_365_txt', + ) ), 'mailbox_quota_stats' => array ( 'datatype' => 'VARCHAR', diff --git a/interface/web/admin/templates/server_config_mail_edit.htm b/interface/web/admin/templates/server_config_mail_edit.htm index 84683191c8..485f94b740 100644 --- a/interface/web/admin/templates/server_config_mail_edit.htm +++ b/interface/web/admin/templates/server_config_mail_edit.htm @@ -143,7 +143,9 @@
- {tmpl_var name='mailbox_soft_delete'} {tmpl_var name='mailbox_soft_delete_info_txt'} +
diff --git a/server/lib/classes/cron.d/500-clean_mailboxes.inc.php b/server/lib/classes/cron.d/500-clean_mailboxes.inc.php index 4a879dd7d7..cc5e249348 100755 --- a/server/lib/classes/cron.d/500-clean_mailboxes.inc.php +++ b/server/lib/classes/cron.d/500-clean_mailboxes.inc.php @@ -53,15 +53,29 @@ class cronjob_clean_mailboxes extends cronjob { public function onRunJob() { global $app, $conf; - $trash_names=array('Trash', 'Papierkorb', 'Deleted Items', 'Deleted Messages', 'Corbeille'); - $junk_names=array('Junk', 'Junk Email', 'SPAM'); + $this->purge_junk_thrash(); + $this->purge_soft_deleted_maildir(); + + parent::onRunJob(); + } + + private function purge_junk_thrash() { + global $app, $conf; + + $trash_names = array('Trash', 'Papierkorb', 'Deleted Items', 'Deleted Messages', 'Corbeille'); + $junk_names = array('Junk', 'Junk Email', 'SPAM'); $expunge_cmd = 'doveadm expunge -u ? mailbox ? sentbefore '; $purge_cmd = 'doveadm purge -u ?'; $recalc_cmd = 'doveadm quota recalc -u ?'; $server_id = intval($conf['server_id']); - $records = $app->db->queryAllRecords("SELECT email, maildir, purge_trash_days, purge_junk_days, imap_prefix FROM mail_user WHERE maildir_format = 'maildir' AND disableimap = 'n' AND server_id = ? AND (purge_trash_days > 0 OR purge_junk_days > 0)", $server_id); + $records = $app->db->queryAllRecords(" + SELECT email, maildir, purge_trash_days, purge_junk_days, imap_prefix + FROM mail_user + WHERE maildir_format = 'maildir' AND disableimap = 'n' AND server_id = ? + AND (purge_trash_days > 0 OR purge_junk_days > 0)", + $server_id); if(is_array($records) && !empty($records)) { foreach($records as $email) { @@ -93,8 +107,34 @@ class cronjob_clean_mailboxes extends cronjob { $app->system->exec_safe($recalc_cmd, $email['email']); } } + } - parent::onRunJob(); + // Purge soft deleted mailboxes. + private function purge_soft_deleted_maildir() { + global $app, $conf; + $mail_config = $app->getconf->get_server_config($conf["server_id"], 'mail'); + + if ($mail_config['mailbox_soft_delete'] == 'y') { + // Backward compatibility for dev installs between 3.2.9 and 3.2.10. + $mail_config['mailbox_soft_delete'] = 7; + } + if ($mail_config['mailbox_soft_delete'] > 0) { + $matched_dirs = glob($mail_config['homedir_path'] . "/*/[a-z0-9.-]*-deleted-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]"); + + if (!empty($matched_dirs)) { + $delay_days = $mail_config['mailbox_soft_delete']; + foreach($matched_dirs as $dir) { + if (is_dir($dir)) { + $mtime = filemtime($dir); + echo "$mtime < " . strtotime("-$delay_days days") ; + if ($mtime < strtotime("-$delay_days days")) { + // do remove + $app->system->exec_safe('rm -rf ?', $dir); + } + } + } + } + } } /* this function is optional if it contains no custom code */ diff --git a/server/scripts/handle_mailbox_soft_deleted.sh b/server/scripts/handle_mailbox_soft_deleted.sh deleted file mode 100644 index 7c7f280839..0000000000 --- a/server/scripts/handle_mailbox_soft_deleted.sh +++ /dev/null @@ -1,49 +0,0 @@ -#!/bin/bash - -# Archive directories for deleted mailboxes. -delay_days=7 - -# Test if there is something to do... to avoid 'No such file or directory' from find later. -ls /var/vmail/*/[a-z0-9.-]*-deleted-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9] >/dev/null 2>&1 -if [ $? != 0 ]; then - exit 0; -fi - -function remove_soft_deleted_mailbox { - dir=$1 - - echo "Purging $dir" - rm -r "$dir" -} - -function compress_soft_deleted_mailbox { - dir=$1 - - backupfile="${dir}.tar.bz2" - - # Test if backup file already exists - if [ -f $backupfile ]; then - # Skip - echo "ERROR: Backupfile($backupfile) exists!" >&2 - continue - fi - - echo "Compressing for $dir" - tar cvfj "$backupfile" --remove-files "$dir" 2> >( grep -v "tar: Removing leading" >&2) -} - -# List deleted mailboxs to archive -# -mtime +7 ===> Only mailboxes deleted more then 7 days ago -# Test that the last dir component matches e.g. xxx-deleted-20220101094242 (14 digits) -# command: xxx-`date "+%Y%m%d%H%M%S"` -find /var/vmail/*/[a-z0-9.-]*-deleted-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9] -maxdepth 0 -type d -mtime +$delay_days | while read line; do - # example $line: "/var/vmail/example.com/info-20220101094242" - - dir=$line - - # Uncomment the desired cleanup method below, or be creative and create your own. - - remove_soft_deleted_mailbox $dir - #compress_soft_deleted_mailbox $dir - -done -- GitLab From 7375ff15aeafd89e2a9f4b00e0e0ccf3e08b1454 Mon Sep 17 00:00:00 2001 From: Herman van Rink Date: Sat, 6 May 2023 15:16:47 +0200 Subject: [PATCH 02/15] Cleanup debug statement --- server/lib/classes/cron.d/500-clean_mailboxes.inc.php | 1 - 1 file changed, 1 deletion(-) diff --git a/server/lib/classes/cron.d/500-clean_mailboxes.inc.php b/server/lib/classes/cron.d/500-clean_mailboxes.inc.php index cc5e249348..e481f28efe 100755 --- a/server/lib/classes/cron.d/500-clean_mailboxes.inc.php +++ b/server/lib/classes/cron.d/500-clean_mailboxes.inc.php @@ -126,7 +126,6 @@ class cronjob_clean_mailboxes extends cronjob { foreach($matched_dirs as $dir) { if (is_dir($dir)) { $mtime = filemtime($dir); - echo "$mtime < " . strtotime("-$delay_days days") ; if ($mtime < strtotime("-$delay_days days")) { // do remove $app->system->exec_safe('rm -rf ?', $dir); -- GitLab From e44f640c26e3a61f2f2b0009d98321be2efeea57 Mon Sep 17 00:00:00 2001 From: Herman van Rink Date: Sat, 6 May 2023 16:05:54 +0200 Subject: [PATCH 03/15] Integrate 600-purge_mailboxes.inc.php into 500-clean_mailboxes.inc.php Both are supposed to run before midnight. --- .../cron.d/500-clean_mailboxes.inc.php | 15 ++++ .../cron.d/600-purge_mailboxes.inc.php | 77 ------------------- 2 files changed, 15 insertions(+), 77 deletions(-) delete mode 100644 server/lib/classes/cron.d/600-purge_mailboxes.inc.php diff --git a/server/lib/classes/cron.d/500-clean_mailboxes.inc.php b/server/lib/classes/cron.d/500-clean_mailboxes.inc.php index e481f28efe..a604835249 100755 --- a/server/lib/classes/cron.d/500-clean_mailboxes.inc.php +++ b/server/lib/classes/cron.d/500-clean_mailboxes.inc.php @@ -55,6 +55,7 @@ class cronjob_clean_mailboxes extends cronjob { $this->purge_junk_thrash(); $this->purge_soft_deleted_maildir(); + $this->purge_mdbox_removed(); parent::onRunJob(); } @@ -136,6 +137,20 @@ class cronjob_clean_mailboxes extends cronjob { } } + // Remove messages with refcount=0 from mdbox files. + private function purge_mdbox_removed() { + global $app, $conf; + + $sql = "SELECT email FROM mail_user WHERE maildir_format = 'mdbox' AND server_id = ?"; + $records = $app->db->queryAllRecords($sql, $server_id); + + if(is_array($records)) { + foreach($records as $rec) { + $app->system->exec_safe("su -c ?", 'doveadm purge -u "' . $rec["email"] . '"'); + } + } + } + /* this function is optional if it contains no custom code */ public function onAfterRun() { global $app; diff --git a/server/lib/classes/cron.d/600-purge_mailboxes.inc.php b/server/lib/classes/cron.d/600-purge_mailboxes.inc.php deleted file mode 100644 index 451eb56642..0000000000 --- a/server/lib/classes/cron.d/600-purge_mailboxes.inc.php +++ /dev/null @@ -1,77 +0,0 @@ -db->queryAllRecords($sql, $server_id); - - if(is_array($records)) { - foreach($records as $rec){ - $app->system->exec_safe("su -c ?", 'doveadm purge -u "' . $rec["email"] . '"'); - } - } - - parent::onRunJob(); - } - - /* this function is optional if it contains no custom code */ - public function onAfterRun() { - global $app; - - parent::onAfterRun(); - } - -} - -?> -- GitLab From 56ab7ba4433bad01d80d4b41650f2b292009eeab Mon Sep 17 00:00:00 2001 From: Herman van Rink Date: Sat, 6 May 2023 23:12:34 +0200 Subject: [PATCH 04/15] Add English lng file --- interface/web/admin/lib/lang/en_server_config.lng | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/interface/web/admin/lib/lang/en_server_config.lng b/interface/web/admin/lib/lang/en_server_config.lng index 1ee224a44a..40b82c7780 100644 --- a/interface/web/admin/lib/lang/en_server_config.lng +++ b/interface/web/admin/lib/lang/en_server_config.lng @@ -356,4 +356,10 @@ $wb['jailkit_hardlinks_allow_txt'] = 'Allow hardlinks within the jail'; $wb['jailkit_hardlinks_no_txt'] = 'No, remove hardlinked files'; $wb['jailkit_hardlinks_yes_txt'] = 'Yes, use hardlinks if possible'; $wb['mailbox_soft_delete_txt'] = 'Mailbox soft delete'; -$wb['mailbox_soft_delete_info_txt'] = 'by default cleaned up after 7 days.'; +$wb['soft_delete_directly_txt'] = 'Not enabled, delete directly'; +$wb['soft_delete_keep_indefinately_txt'] = 'Soft delete, leave cleanup for someone else'; +$wb['soft_delete_keep_1_txt'] = 'Purge after 1 day'; +$wb['soft_delete_keep_7_txt'] = 'Purge after 7 days'; +$wb['soft_delete_keep_30_txt'] = 'Purge after 30 days'; +$wb['soft_delete_keep_90_txt'] = 'Purge after 90 days'; +$wb['soft_delete_keep_365_txt'] = 'Purge after 365 days'; -- GitLab From d98ac6440409c1677e8f3f73c3f34048ac11b82f Mon Sep 17 00:00:00 2001 From: Herman van Rink Date: Sat, 6 May 2023 23:29:45 +0200 Subject: [PATCH 05/15] Actively update the mailbox_soft_delete config option --- install/sql/incremental/upd_dev_collection.sql | 6 +++++- server/lib/classes/cron.d/500-clean_mailboxes.inc.php | 4 ---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/install/sql/incremental/upd_dev_collection.sql b/install/sql/incremental/upd_dev_collection.sql index 42cf712a66..cec31dae2c 100644 --- a/install/sql/incremental/upd_dev_collection.sql +++ b/install/sql/incremental/upd_dev_collection.sql @@ -5,4 +5,8 @@ ALTER TABLE `mail_user` ADD COLUMN `imap_prefix` varchar(255) NULL default NULL UPDATE `dns_ssl_ca` SET `ca_issue` = 'sectigo.com' WHERE `ca_issue` = 'comodo.com'; UPDATE `dns_ssl_ca` SET `ca_issue` = 'sectigo.com' WHERE `ca_issue` = 'comodoca.com'; UPDATE `dns_ssl_ca` SET `ca_name` = 'Sectigo (formerly Comodo CA)' WHERE `ca_issue` = 'sectigo.com'; --- not updating the dns_rr table to change all CAA records that have comodo.com / comodoca.com - we should not touch users records imo - TP \ No newline at end of file +-- not updating the dns_rr table to change all CAA records that have comodo.com / comodoca.com - we should not touch users records imo - TP + +-- #6445 Update the mailbox_soft_delete config option to it's new structure. +UPDATE server SET config=REGEXP_REPLACE(config, 'mailbox_soft_delete=n', 'mailbox_soft_delete=0') WHERE config LIKE '%mailbox_soft_delete=n%' +UPDATE server SET config=REGEXP_REPLACE(config, 'mailbox_soft_delete=y', 'mailbox_soft_delete=7') WHERE config LIKE '%mailbox_soft_delete=y%' diff --git a/server/lib/classes/cron.d/500-clean_mailboxes.inc.php b/server/lib/classes/cron.d/500-clean_mailboxes.inc.php index a604835249..2b6d073a98 100755 --- a/server/lib/classes/cron.d/500-clean_mailboxes.inc.php +++ b/server/lib/classes/cron.d/500-clean_mailboxes.inc.php @@ -115,10 +115,6 @@ class cronjob_clean_mailboxes extends cronjob { global $app, $conf; $mail_config = $app->getconf->get_server_config($conf["server_id"], 'mail'); - if ($mail_config['mailbox_soft_delete'] == 'y') { - // Backward compatibility for dev installs between 3.2.9 and 3.2.10. - $mail_config['mailbox_soft_delete'] = 7; - } if ($mail_config['mailbox_soft_delete'] > 0) { $matched_dirs = glob($mail_config['homedir_path'] . "/*/[a-z0-9.-]*-deleted-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]"); -- GitLab From 8d8b2624d32a24031050c84e38bf49ae2d6f8313 Mon Sep 17 00:00:00 2001 From: Thom Date: Sun, 7 May 2023 10:20:43 +0000 Subject: [PATCH 06/15] Update suggested string changes --- interface/web/admin/form/server_config.tform.php | 2 +- interface/web/admin/lib/lang/en_server_config.lng | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/interface/web/admin/form/server_config.tform.php b/interface/web/admin/form/server_config.tform.php index 8ac6994e64..521e51ebc4 100644 --- a/interface/web/admin/form/server_config.tform.php +++ b/interface/web/admin/form/server_config.tform.php @@ -740,7 +740,7 @@ $form["tabs"]['mail'] = array( 'default' => 'n', 'value' => array( 0 => 'soft_delete_directly_txt', - -1 => 'soft_delete_keep_indefinately_txt', + -1 => 'soft_delete_keep_indefinitely_txt', 1 => 'soft_delete_keep_1_txt', 7 => 'soft_delete_keep_7_txt', 30 => 'soft_delete_keep_30_txt', diff --git a/interface/web/admin/lib/lang/en_server_config.lng b/interface/web/admin/lib/lang/en_server_config.lng index 40b82c7780..1d89dc5b7a 100644 --- a/interface/web/admin/lib/lang/en_server_config.lng +++ b/interface/web/admin/lib/lang/en_server_config.lng @@ -356,8 +356,8 @@ $wb['jailkit_hardlinks_allow_txt'] = 'Allow hardlinks within the jail'; $wb['jailkit_hardlinks_no_txt'] = 'No, remove hardlinked files'; $wb['jailkit_hardlinks_yes_txt'] = 'Yes, use hardlinks if possible'; $wb['mailbox_soft_delete_txt'] = 'Mailbox soft delete'; -$wb['soft_delete_directly_txt'] = 'Not enabled, delete directly'; -$wb['soft_delete_keep_indefinately_txt'] = 'Soft delete, leave cleanup for someone else'; +$wb['soft_delete_directly_txt'] = 'Delete instantly'; +$wb['soft_delete_keep_indefinitely_txt'] = 'Rename but don't delete (manual cleanup)'; $wb['soft_delete_keep_1_txt'] = 'Purge after 1 day'; $wb['soft_delete_keep_7_txt'] = 'Purge after 7 days'; $wb['soft_delete_keep_30_txt'] = 'Purge after 30 days'; -- GitLab From 18ae289267b057cd32d56cc338566b9b102c65a3 Mon Sep 17 00:00:00 2001 From: Herman van Rink Date: Sun, 7 May 2023 12:28:48 +0200 Subject: [PATCH 07/15] Replicate new strings to all language files --- interface/web/admin/lib/lang/ar_server_config.lng | 8 +++++++- interface/web/admin/lib/lang/bg_server_config.lng | 8 +++++++- interface/web/admin/lib/lang/br_server_config.lng | 8 +++++++- interface/web/admin/lib/lang/ca_server_config.lng | 8 +++++++- interface/web/admin/lib/lang/cn_server_config.lng | 8 +++++++- interface/web/admin/lib/lang/cz_server_config.lng | 8 +++++++- interface/web/admin/lib/lang/de_server_config.lng | 8 +++++++- interface/web/admin/lib/lang/dk_server_config.lng | 8 +++++++- interface/web/admin/lib/lang/el_server_config.lng | 8 +++++++- interface/web/admin/lib/lang/es_server_config.lng | 8 +++++++- interface/web/admin/lib/lang/fi_server_config.lng | 8 +++++++- interface/web/admin/lib/lang/fr_server_config.lng | 8 +++++++- interface/web/admin/lib/lang/hr_server_config.lng | 8 +++++++- interface/web/admin/lib/lang/hu_server_config.lng | 8 +++++++- interface/web/admin/lib/lang/id_server_config.lng | 8 +++++++- interface/web/admin/lib/lang/it_server_config.lng | 8 +++++++- interface/web/admin/lib/lang/ja_server_config.lng | 8 +++++++- interface/web/admin/lib/lang/nl_server_config.lng | 8 +++++++- interface/web/admin/lib/lang/pl_server_config.lng | 8 +++++++- interface/web/admin/lib/lang/pt_server_config.lng | 8 +++++++- interface/web/admin/lib/lang/ro_server_config.lng | 8 +++++++- interface/web/admin/lib/lang/ru_server_config.lng | 8 +++++++- interface/web/admin/lib/lang/se_server_config.lng | 8 +++++++- interface/web/admin/lib/lang/sk_server_config.lng | 8 +++++++- interface/web/admin/lib/lang/tr_server_config.lng | 8 +++++++- 25 files changed, 175 insertions(+), 25 deletions(-) diff --git a/interface/web/admin/lib/lang/ar_server_config.lng b/interface/web/admin/lib/lang/ar_server_config.lng index 7a275d98f1..8d680d5e4c 100644 --- a/interface/web/admin/lib/lang/ar_server_config.lng +++ b/interface/web/admin/lib/lang/ar_server_config.lng @@ -350,4 +350,10 @@ $wb['bind_zonefiles_masterprefix_error_regex'] = 'Invalid BIND zonefiles master $wb['bind_zonefiles_slaveprefix_error_regex'] = 'Invalid BIND zonefiles slave prefix.'; $wb['bind_keyfiles_dir_error_regex'] = 'Invalid BIND keyfiles directory.'; $wb['mailbox_soft_delete_txt'] = 'Mailbox soft delete'; -$wb['mailbox_soft_delete_info_txt'] = 'by default cleaned up after 7 days.'; +$wb['soft_delete_directly_txt'] = 'Delete instantly'; +$wb['soft_delete_keep_indefinitely_txt'] = 'Rename but don't delete (manual cleanup)'; +$wb['soft_delete_keep_1_txt'] = 'Purge after 1 day'; +$wb['soft_delete_keep_7_txt'] = 'Purge after 7 days'; +$wb['soft_delete_keep_30_txt'] = 'Purge after 30 days'; +$wb['soft_delete_keep_90_txt'] = 'Purge after 90 days'; +$wb['soft_delete_keep_365_txt'] = 'Purge after 365 days'; diff --git a/interface/web/admin/lib/lang/bg_server_config.lng b/interface/web/admin/lib/lang/bg_server_config.lng index 1fd8c9d3aa..ae2dd48193 100644 --- a/interface/web/admin/lib/lang/bg_server_config.lng +++ b/interface/web/admin/lib/lang/bg_server_config.lng @@ -350,4 +350,10 @@ $wb['bind_zonefiles_masterprefix_error_regex'] = 'Invalid BIND zonefiles master $wb['bind_zonefiles_slaveprefix_error_regex'] = 'Invalid BIND zonefiles slave prefix.'; $wb['bind_keyfiles_dir_error_regex'] = 'Invalid BIND keyfiles directory.'; $wb['mailbox_soft_delete_txt'] = 'Mailbox soft delete'; -$wb['mailbox_soft_delete_info_txt'] = 'by default cleaned up after 7 days.'; +$wb['soft_delete_directly_txt'] = 'Delete instantly'; +$wb['soft_delete_keep_indefinitely_txt'] = 'Rename but don't delete (manual cleanup)'; +$wb['soft_delete_keep_1_txt'] = 'Purge after 1 day'; +$wb['soft_delete_keep_7_txt'] = 'Purge after 7 days'; +$wb['soft_delete_keep_30_txt'] = 'Purge after 30 days'; +$wb['soft_delete_keep_90_txt'] = 'Purge after 90 days'; +$wb['soft_delete_keep_365_txt'] = 'Purge after 365 days'; diff --git a/interface/web/admin/lib/lang/br_server_config.lng b/interface/web/admin/lib/lang/br_server_config.lng index b86729d0b2..b34e898007 100644 --- a/interface/web/admin/lib/lang/br_server_config.lng +++ b/interface/web/admin/lib/lang/br_server_config.lng @@ -350,4 +350,10 @@ $wb['bind_zonefiles_masterprefix_error_regex'] = 'Invalid BIND zonefiles master $wb['bind_zonefiles_slaveprefix_error_regex'] = 'Invalid BIND zonefiles slave prefix.'; $wb['bind_keyfiles_dir_error_regex'] = 'Invalid BIND keyfiles directory.'; $wb['mailbox_soft_delete_txt'] = 'Mailbox soft delete'; -$wb['mailbox_soft_delete_info_txt'] = 'by default cleaned up after 7 days.'; +$wb['soft_delete_directly_txt'] = 'Delete instantly'; +$wb['soft_delete_keep_indefinitely_txt'] = 'Rename but don't delete (manual cleanup)'; +$wb['soft_delete_keep_1_txt'] = 'Purge after 1 day'; +$wb['soft_delete_keep_7_txt'] = 'Purge after 7 days'; +$wb['soft_delete_keep_30_txt'] = 'Purge after 30 days'; +$wb['soft_delete_keep_90_txt'] = 'Purge after 90 days'; +$wb['soft_delete_keep_365_txt'] = 'Purge after 365 days'; diff --git a/interface/web/admin/lib/lang/ca_server_config.lng b/interface/web/admin/lib/lang/ca_server_config.lng index d9e9877805..968daecea2 100644 --- a/interface/web/admin/lib/lang/ca_server_config.lng +++ b/interface/web/admin/lib/lang/ca_server_config.lng @@ -350,4 +350,10 @@ $wb['bind_zonefiles_masterprefix_error_regex'] = 'Invalid BIND zonefiles master $wb['bind_zonefiles_slaveprefix_error_regex'] = 'Invalid BIND zonefiles slave prefix.'; $wb['bind_keyfiles_dir_error_regex'] = 'Invalid BIND keyfiles directory.'; $wb['mailbox_soft_delete_txt'] = 'Mailbox soft delete'; -$wb['mailbox_soft_delete_info_txt'] = 'by default cleaned up after 7 days.'; +$wb['soft_delete_directly_txt'] = 'Delete instantly'; +$wb['soft_delete_keep_indefinitely_txt'] = 'Rename but don't delete (manual cleanup)'; +$wb['soft_delete_keep_1_txt'] = 'Purge after 1 day'; +$wb['soft_delete_keep_7_txt'] = 'Purge after 7 days'; +$wb['soft_delete_keep_30_txt'] = 'Purge after 30 days'; +$wb['soft_delete_keep_90_txt'] = 'Purge after 90 days'; +$wb['soft_delete_keep_365_txt'] = 'Purge after 365 days'; diff --git a/interface/web/admin/lib/lang/cn_server_config.lng b/interface/web/admin/lib/lang/cn_server_config.lng index 5d5d6eeb25..7daa337298 100644 --- a/interface/web/admin/lib/lang/cn_server_config.lng +++ b/interface/web/admin/lib/lang/cn_server_config.lng @@ -351,4 +351,10 @@ $wb['jailkit_hardlinks_allow_txt'] = '允许狱中硬链接'; $wb['jailkit_hardlinks_no_txt'] = '不,删除硬链接文件'; $wb['jailkit_hardlinks_yes_txt'] = '是的,如果可能,使用硬链接'; $wb['mailbox_soft_delete_txt'] = '邮箱软删除'; -$wb['mailbox_soft_delete_info_txt'] = '默认情况下,7天后清理。'; +$wb['soft_delete_directly_txt'] = 'Delete instantly'; +$wb['soft_delete_keep_indefinitely_txt'] = 'Rename but don't delete (manual cleanup)'; +$wb['soft_delete_keep_1_txt'] = 'Purge after 1 day'; +$wb['soft_delete_keep_7_txt'] = 'Purge after 7 days'; +$wb['soft_delete_keep_30_txt'] = 'Purge after 30 days'; +$wb['soft_delete_keep_90_txt'] = 'Purge after 90 days'; +$wb['soft_delete_keep_365_txt'] = 'Purge after 365 days'; diff --git a/interface/web/admin/lib/lang/cz_server_config.lng b/interface/web/admin/lib/lang/cz_server_config.lng index ec90cffe8b..cba840bf44 100644 --- a/interface/web/admin/lib/lang/cz_server_config.lng +++ b/interface/web/admin/lib/lang/cz_server_config.lng @@ -350,4 +350,10 @@ $wb['bind_zonefiles_masterprefix_error_regex'] = 'Invalid BIND zonefiles master $wb['bind_zonefiles_slaveprefix_error_regex'] = 'Invalid BIND zonefiles slave prefix.'; $wb['bind_keyfiles_dir_error_regex'] = 'Invalid BIND keyfiles directory.'; $wb['mailbox_soft_delete_txt'] = 'Mailbox soft delete'; -$wb['mailbox_soft_delete_info_txt'] = 'by default cleaned up after 7 days.'; +$wb['soft_delete_directly_txt'] = 'Delete instantly'; +$wb['soft_delete_keep_indefinitely_txt'] = 'Rename but don't delete (manual cleanup)'; +$wb['soft_delete_keep_1_txt'] = 'Purge after 1 day'; +$wb['soft_delete_keep_7_txt'] = 'Purge after 7 days'; +$wb['soft_delete_keep_30_txt'] = 'Purge after 30 days'; +$wb['soft_delete_keep_90_txt'] = 'Purge after 90 days'; +$wb['soft_delete_keep_365_txt'] = 'Purge after 365 days'; diff --git a/interface/web/admin/lib/lang/de_server_config.lng b/interface/web/admin/lib/lang/de_server_config.lng index f6a89c702b..b5b8731a24 100644 --- a/interface/web/admin/lib/lang/de_server_config.lng +++ b/interface/web/admin/lib/lang/de_server_config.lng @@ -343,7 +343,6 @@ $wb['jailkit_hardlinks_allow_txt'] = 'Erlaube hardlinks innerhalb des Jails'; $wb['jailkit_hardlinks_no_txt'] = 'Nein, entferne hardgelinkte Dateien'; $wb['jailkit_hardlinks_yes_txt'] = 'Ja, benutze hardlinks wenn möglich'; $wb['mailbox_soft_delete_txt'] = 'Postfach Soft-Löschung'; -$wb['mailbox_soft_delete_info_txt'] = 'wird standardmäßig nach 7 Tagen gelöscht.'; $wb['bind_zonefiles_masterprefix_txt'] = 'BIND master zonefiles prefix'; $wb['bind_zonefiles_slaveprefix_txt'] = 'BIND slave zonefiles prefix'; $wb['bind_keyfiles_dir_txt'] = 'BIND keyfiles directory'; @@ -351,3 +350,10 @@ $wb['bind_keyfiles_dir_error_empty'] = 'BIND keyfiles directory is empty.'; $wb['bind_zonefiles_masterprefix_error_regex'] = 'Invalid BIND zonefiles master prefix.'; $wb['bind_zonefiles_slaveprefix_error_regex'] = 'Invalid BIND zonefiles slave prefix.'; $wb['bind_keyfiles_dir_error_regex'] = 'Invalid BIND keyfiles directory.'; +$wb['soft_delete_directly_txt'] = 'Delete instantly'; +$wb['soft_delete_keep_indefinitely_txt'] = 'Rename but don't delete (manual cleanup)'; +$wb['soft_delete_keep_1_txt'] = 'Purge after 1 day'; +$wb['soft_delete_keep_7_txt'] = 'Purge after 7 days'; +$wb['soft_delete_keep_30_txt'] = 'Purge after 30 days'; +$wb['soft_delete_keep_90_txt'] = 'Purge after 90 days'; +$wb['soft_delete_keep_365_txt'] = 'Purge after 365 days'; diff --git a/interface/web/admin/lib/lang/dk_server_config.lng b/interface/web/admin/lib/lang/dk_server_config.lng index 7a26e89479..15e38decf6 100644 --- a/interface/web/admin/lib/lang/dk_server_config.lng +++ b/interface/web/admin/lib/lang/dk_server_config.lng @@ -350,4 +350,10 @@ $wb['bind_zonefiles_masterprefix_error_regex'] = 'Invalid BIND zonefiles master $wb['bind_zonefiles_slaveprefix_error_regex'] = 'Invalid BIND zonefiles slave prefix.'; $wb['bind_keyfiles_dir_error_regex'] = 'Invalid BIND keyfiles directory.'; $wb['mailbox_soft_delete_txt'] = 'Mailbox soft delete'; -$wb['mailbox_soft_delete_info_txt'] = 'by default cleaned up after 7 days.'; +$wb['soft_delete_directly_txt'] = 'Delete instantly'; +$wb['soft_delete_keep_indefinitely_txt'] = 'Rename but don't delete (manual cleanup)'; +$wb['soft_delete_keep_1_txt'] = 'Purge after 1 day'; +$wb['soft_delete_keep_7_txt'] = 'Purge after 7 days'; +$wb['soft_delete_keep_30_txt'] = 'Purge after 30 days'; +$wb['soft_delete_keep_90_txt'] = 'Purge after 90 days'; +$wb['soft_delete_keep_365_txt'] = 'Purge after 365 days'; diff --git a/interface/web/admin/lib/lang/el_server_config.lng b/interface/web/admin/lib/lang/el_server_config.lng index 1545cff229..bc29052801 100644 --- a/interface/web/admin/lib/lang/el_server_config.lng +++ b/interface/web/admin/lib/lang/el_server_config.lng @@ -350,4 +350,10 @@ $wb['bind_zonefiles_masterprefix_error_regex'] = 'Invalid BIND zonefiles master $wb['bind_zonefiles_slaveprefix_error_regex'] = 'Invalid BIND zonefiles slave prefix.'; $wb['bind_keyfiles_dir_error_regex'] = 'Invalid BIND keyfiles directory.'; $wb['mailbox_soft_delete_txt'] = 'Mailbox soft delete'; -$wb['mailbox_soft_delete_info_txt'] = 'by default cleaned up after 7 days.'; +$wb['soft_delete_directly_txt'] = 'Delete instantly'; +$wb['soft_delete_keep_indefinitely_txt'] = 'Rename but don't delete (manual cleanup)'; +$wb['soft_delete_keep_1_txt'] = 'Purge after 1 day'; +$wb['soft_delete_keep_7_txt'] = 'Purge after 7 days'; +$wb['soft_delete_keep_30_txt'] = 'Purge after 30 days'; +$wb['soft_delete_keep_90_txt'] = 'Purge after 90 days'; +$wb['soft_delete_keep_365_txt'] = 'Purge after 365 days'; diff --git a/interface/web/admin/lib/lang/es_server_config.lng b/interface/web/admin/lib/lang/es_server_config.lng index a4e61d142d..be8a52022e 100644 --- a/interface/web/admin/lib/lang/es_server_config.lng +++ b/interface/web/admin/lib/lang/es_server_config.lng @@ -350,4 +350,10 @@ $wb['bind_zonefiles_masterprefix_error_regex'] = 'Invalid BIND zonefiles master $wb['bind_zonefiles_slaveprefix_error_regex'] = 'Invalid BIND zonefiles slave prefix.'; $wb['bind_keyfiles_dir_error_regex'] = 'Invalid BIND keyfiles directory.'; $wb['mailbox_soft_delete_txt'] = 'Mailbox soft delete'; -$wb['mailbox_soft_delete_info_txt'] = 'by default cleaned up after 7 days.'; +$wb['soft_delete_directly_txt'] = 'Delete instantly'; +$wb['soft_delete_keep_indefinitely_txt'] = 'Rename but don't delete (manual cleanup)'; +$wb['soft_delete_keep_1_txt'] = 'Purge after 1 day'; +$wb['soft_delete_keep_7_txt'] = 'Purge after 7 days'; +$wb['soft_delete_keep_30_txt'] = 'Purge after 30 days'; +$wb['soft_delete_keep_90_txt'] = 'Purge after 90 days'; +$wb['soft_delete_keep_365_txt'] = 'Purge after 365 days'; diff --git a/interface/web/admin/lib/lang/fi_server_config.lng b/interface/web/admin/lib/lang/fi_server_config.lng index 8728d60382..c06c124962 100644 --- a/interface/web/admin/lib/lang/fi_server_config.lng +++ b/interface/web/admin/lib/lang/fi_server_config.lng @@ -350,4 +350,10 @@ $wb['bind_zonefiles_masterprefix_error_regex'] = 'Invalid BIND zonefiles master $wb['bind_zonefiles_slaveprefix_error_regex'] = 'Invalid BIND zonefiles slave prefix.'; $wb['bind_keyfiles_dir_error_regex'] = 'Invalid BIND keyfiles directory.'; $wb['mailbox_soft_delete_txt'] = 'Mailbox soft delete'; -$wb['mailbox_soft_delete_info_txt'] = 'by default cleaned up after 7 days.'; +$wb['soft_delete_directly_txt'] = 'Delete instantly'; +$wb['soft_delete_keep_indefinitely_txt'] = 'Rename but don't delete (manual cleanup)'; +$wb['soft_delete_keep_1_txt'] = 'Purge after 1 day'; +$wb['soft_delete_keep_7_txt'] = 'Purge after 7 days'; +$wb['soft_delete_keep_30_txt'] = 'Purge after 30 days'; +$wb['soft_delete_keep_90_txt'] = 'Purge after 90 days'; +$wb['soft_delete_keep_365_txt'] = 'Purge after 365 days'; diff --git a/interface/web/admin/lib/lang/fr_server_config.lng b/interface/web/admin/lib/lang/fr_server_config.lng index 73835ed929..32868b0b4b 100644 --- a/interface/web/admin/lib/lang/fr_server_config.lng +++ b/interface/web/admin/lib/lang/fr_server_config.lng @@ -350,4 +350,10 @@ $wb['bind_zonefiles_masterprefix_error_regex'] = 'Invalid BIND zonefiles master $wb['bind_zonefiles_slaveprefix_error_regex'] = 'Invalid BIND zonefiles slave prefix.'; $wb['bind_keyfiles_dir_error_regex'] = 'Invalid BIND keyfiles directory.'; $wb['mailbox_soft_delete_txt'] = 'Mailbox soft delete'; -$wb['mailbox_soft_delete_info_txt'] = 'by default cleaned up after 7 days.'; +$wb['soft_delete_directly_txt'] = 'Delete instantly'; +$wb['soft_delete_keep_indefinitely_txt'] = 'Rename but don't delete (manual cleanup)'; +$wb['soft_delete_keep_1_txt'] = 'Purge after 1 day'; +$wb['soft_delete_keep_7_txt'] = 'Purge after 7 days'; +$wb['soft_delete_keep_30_txt'] = 'Purge after 30 days'; +$wb['soft_delete_keep_90_txt'] = 'Purge after 90 days'; +$wb['soft_delete_keep_365_txt'] = 'Purge after 365 days'; diff --git a/interface/web/admin/lib/lang/hr_server_config.lng b/interface/web/admin/lib/lang/hr_server_config.lng index a41ec6f6fb..429aab4c0d 100644 --- a/interface/web/admin/lib/lang/hr_server_config.lng +++ b/interface/web/admin/lib/lang/hr_server_config.lng @@ -350,4 +350,10 @@ $wb['bind_zonefiles_masterprefix_error_regex'] = 'Invalid BIND zonefiles master $wb['bind_zonefiles_slaveprefix_error_regex'] = 'Invalid BIND zonefiles slave prefix.'; $wb['bind_keyfiles_dir_error_regex'] = 'Invalid BIND keyfiles directory.'; $wb['mailbox_soft_delete_txt'] = 'Mailbox soft delete'; -$wb['mailbox_soft_delete_info_txt'] = 'by default cleaned up after 7 days.'; +$wb['soft_delete_directly_txt'] = 'Delete instantly'; +$wb['soft_delete_keep_indefinitely_txt'] = 'Rename but don't delete (manual cleanup)'; +$wb['soft_delete_keep_1_txt'] = 'Purge after 1 day'; +$wb['soft_delete_keep_7_txt'] = 'Purge after 7 days'; +$wb['soft_delete_keep_30_txt'] = 'Purge after 30 days'; +$wb['soft_delete_keep_90_txt'] = 'Purge after 90 days'; +$wb['soft_delete_keep_365_txt'] = 'Purge after 365 days'; diff --git a/interface/web/admin/lib/lang/hu_server_config.lng b/interface/web/admin/lib/lang/hu_server_config.lng index a065e10c9f..a13ccbf769 100644 --- a/interface/web/admin/lib/lang/hu_server_config.lng +++ b/interface/web/admin/lib/lang/hu_server_config.lng @@ -350,4 +350,10 @@ $wb['bind_zonefiles_masterprefix_error_regex'] = 'Invalid BIND zonefiles master $wb['bind_zonefiles_slaveprefix_error_regex'] = 'Invalid BIND zonefiles slave prefix.'; $wb['bind_keyfiles_dir_error_regex'] = 'Invalid BIND keyfiles directory.'; $wb['mailbox_soft_delete_txt'] = 'Mailbox soft delete'; -$wb['mailbox_soft_delete_info_txt'] = 'by default cleaned up after 7 days.'; +$wb['soft_delete_directly_txt'] = 'Delete instantly'; +$wb['soft_delete_keep_indefinitely_txt'] = 'Rename but don't delete (manual cleanup)'; +$wb['soft_delete_keep_1_txt'] = 'Purge after 1 day'; +$wb['soft_delete_keep_7_txt'] = 'Purge after 7 days'; +$wb['soft_delete_keep_30_txt'] = 'Purge after 30 days'; +$wb['soft_delete_keep_90_txt'] = 'Purge after 90 days'; +$wb['soft_delete_keep_365_txt'] = 'Purge after 365 days'; diff --git a/interface/web/admin/lib/lang/id_server_config.lng b/interface/web/admin/lib/lang/id_server_config.lng index b25092619c..6c1e026206 100644 --- a/interface/web/admin/lib/lang/id_server_config.lng +++ b/interface/web/admin/lib/lang/id_server_config.lng @@ -350,4 +350,10 @@ $wb['bind_zonefiles_masterprefix_error_regex'] = 'Invalid BIND zonefiles master $wb['bind_zonefiles_slaveprefix_error_regex'] = 'Invalid BIND zonefiles slave prefix.'; $wb['bind_keyfiles_dir_error_regex'] = 'Invalid BIND keyfiles directory.'; $wb['mailbox_soft_delete_txt'] = 'Mailbox soft delete'; -$wb['mailbox_soft_delete_info_txt'] = 'by default cleaned up after 7 days.'; +$wb['soft_delete_directly_txt'] = 'Delete instantly'; +$wb['soft_delete_keep_indefinitely_txt'] = 'Rename but don't delete (manual cleanup)'; +$wb['soft_delete_keep_1_txt'] = 'Purge after 1 day'; +$wb['soft_delete_keep_7_txt'] = 'Purge after 7 days'; +$wb['soft_delete_keep_30_txt'] = 'Purge after 30 days'; +$wb['soft_delete_keep_90_txt'] = 'Purge after 90 days'; +$wb['soft_delete_keep_365_txt'] = 'Purge after 365 days'; diff --git a/interface/web/admin/lib/lang/it_server_config.lng b/interface/web/admin/lib/lang/it_server_config.lng index 3d8df831e8..1cf6d64925 100644 --- a/interface/web/admin/lib/lang/it_server_config.lng +++ b/interface/web/admin/lib/lang/it_server_config.lng @@ -349,4 +349,10 @@ $wb['bind_zonefiles_masterprefix_error_regex'] = 'Invalid BIND zonefiles master $wb['bind_zonefiles_slaveprefix_error_regex'] = 'Invalid BIND zonefiles slave prefix.'; $wb['bind_keyfiles_dir_error_regex'] = 'Invalid BIND keyfiles directory.'; $wb['mailbox_soft_delete_txt'] = 'Mailbox soft delete'; -$wb['mailbox_soft_delete_info_txt'] = 'by default cleaned up after 7 days.'; +$wb['soft_delete_directly_txt'] = 'Delete instantly'; +$wb['soft_delete_keep_indefinitely_txt'] = 'Rename but don't delete (manual cleanup)'; +$wb['soft_delete_keep_1_txt'] = 'Purge after 1 day'; +$wb['soft_delete_keep_7_txt'] = 'Purge after 7 days'; +$wb['soft_delete_keep_30_txt'] = 'Purge after 30 days'; +$wb['soft_delete_keep_90_txt'] = 'Purge after 90 days'; +$wb['soft_delete_keep_365_txt'] = 'Purge after 365 days'; diff --git a/interface/web/admin/lib/lang/ja_server_config.lng b/interface/web/admin/lib/lang/ja_server_config.lng index befd2b5911..4e05a32c84 100644 --- a/interface/web/admin/lib/lang/ja_server_config.lng +++ b/interface/web/admin/lib/lang/ja_server_config.lng @@ -350,4 +350,10 @@ $wb['bind_zonefiles_masterprefix_error_regex'] = 'Invalid BIND zonefiles master $wb['bind_zonefiles_slaveprefix_error_regex'] = 'Invalid BIND zonefiles slave prefix.'; $wb['bind_keyfiles_dir_error_regex'] = 'Invalid BIND keyfiles directory.'; $wb['mailbox_soft_delete_txt'] = 'Mailbox soft delete'; -$wb['mailbox_soft_delete_info_txt'] = 'by default cleaned up after 7 days.'; +$wb['soft_delete_directly_txt'] = 'Delete instantly'; +$wb['soft_delete_keep_indefinitely_txt'] = 'Rename but don't delete (manual cleanup)'; +$wb['soft_delete_keep_1_txt'] = 'Purge after 1 day'; +$wb['soft_delete_keep_7_txt'] = 'Purge after 7 days'; +$wb['soft_delete_keep_30_txt'] = 'Purge after 30 days'; +$wb['soft_delete_keep_90_txt'] = 'Purge after 90 days'; +$wb['soft_delete_keep_365_txt'] = 'Purge after 365 days'; diff --git a/interface/web/admin/lib/lang/nl_server_config.lng b/interface/web/admin/lib/lang/nl_server_config.lng index 2af5d6a9ea..e77c6e46a3 100644 --- a/interface/web/admin/lib/lang/nl_server_config.lng +++ b/interface/web/admin/lib/lang/nl_server_config.lng @@ -350,4 +350,10 @@ $wb['bind_zonefiles_masterprefix_error_regex'] = 'Invalid BIND zonefiles master $wb['bind_zonefiles_slaveprefix_error_regex'] = 'Invalid BIND zonefiles slave prefix.'; $wb['bind_keyfiles_dir_error_regex'] = 'Invalid BIND keyfiles directory.'; $wb['mailbox_soft_delete_txt'] = 'Mailbox soft delete'; -$wb['mailbox_soft_delete_info_txt'] = 'by default cleaned up after 7 days.'; +$wb['soft_delete_directly_txt'] = 'Delete instantly'; +$wb['soft_delete_keep_indefinitely_txt'] = 'Rename but don't delete (manual cleanup)'; +$wb['soft_delete_keep_1_txt'] = 'Purge after 1 day'; +$wb['soft_delete_keep_7_txt'] = 'Purge after 7 days'; +$wb['soft_delete_keep_30_txt'] = 'Purge after 30 days'; +$wb['soft_delete_keep_90_txt'] = 'Purge after 90 days'; +$wb['soft_delete_keep_365_txt'] = 'Purge after 365 days'; diff --git a/interface/web/admin/lib/lang/pl_server_config.lng b/interface/web/admin/lib/lang/pl_server_config.lng index 1f2ed1b6ea..1d277a2757 100644 --- a/interface/web/admin/lib/lang/pl_server_config.lng +++ b/interface/web/admin/lib/lang/pl_server_config.lng @@ -350,4 +350,10 @@ $wb['bind_zonefiles_masterprefix_error_regex'] = 'Invalid BIND zonefiles master $wb['bind_zonefiles_slaveprefix_error_regex'] = 'Invalid BIND zonefiles slave prefix.'; $wb['bind_keyfiles_dir_error_regex'] = 'Invalid BIND keyfiles directory.'; $wb['mailbox_soft_delete_txt'] = 'Mailbox soft delete'; -$wb['mailbox_soft_delete_info_txt'] = 'by default cleaned up after 7 days.'; +$wb['soft_delete_directly_txt'] = 'Delete instantly'; +$wb['soft_delete_keep_indefinitely_txt'] = 'Rename but don't delete (manual cleanup)'; +$wb['soft_delete_keep_1_txt'] = 'Purge after 1 day'; +$wb['soft_delete_keep_7_txt'] = 'Purge after 7 days'; +$wb['soft_delete_keep_30_txt'] = 'Purge after 30 days'; +$wb['soft_delete_keep_90_txt'] = 'Purge after 90 days'; +$wb['soft_delete_keep_365_txt'] = 'Purge after 365 days'; diff --git a/interface/web/admin/lib/lang/pt_server_config.lng b/interface/web/admin/lib/lang/pt_server_config.lng index 96a6046dba..6d338ee50c 100644 --- a/interface/web/admin/lib/lang/pt_server_config.lng +++ b/interface/web/admin/lib/lang/pt_server_config.lng @@ -350,4 +350,10 @@ $wb['bind_zonefiles_masterprefix_error_regex'] = 'Invalid BIND zonefiles master $wb['bind_zonefiles_slaveprefix_error_regex'] = 'Invalid BIND zonefiles slave prefix.'; $wb['bind_keyfiles_dir_error_regex'] = 'Invalid BIND keyfiles directory.'; $wb['mailbox_soft_delete_txt'] = 'Mailbox soft delete'; -$wb['mailbox_soft_delete_info_txt'] = 'by default cleaned up after 7 days.'; +$wb['soft_delete_directly_txt'] = 'Delete instantly'; +$wb['soft_delete_keep_indefinitely_txt'] = 'Rename but don't delete (manual cleanup)'; +$wb['soft_delete_keep_1_txt'] = 'Purge after 1 day'; +$wb['soft_delete_keep_7_txt'] = 'Purge after 7 days'; +$wb['soft_delete_keep_30_txt'] = 'Purge after 30 days'; +$wb['soft_delete_keep_90_txt'] = 'Purge after 90 days'; +$wb['soft_delete_keep_365_txt'] = 'Purge after 365 days'; diff --git a/interface/web/admin/lib/lang/ro_server_config.lng b/interface/web/admin/lib/lang/ro_server_config.lng index 05dfa0216a..d713897179 100644 --- a/interface/web/admin/lib/lang/ro_server_config.lng +++ b/interface/web/admin/lib/lang/ro_server_config.lng @@ -350,4 +350,10 @@ $wb['bind_zonefiles_masterprefix_error_regex'] = 'Invalid BIND zonefiles master $wb['bind_zonefiles_slaveprefix_error_regex'] = 'Invalid BIND zonefiles slave prefix.'; $wb['bind_keyfiles_dir_error_regex'] = 'Invalid BIND keyfiles directory.'; $wb['mailbox_soft_delete_txt'] = 'Mailbox soft delete'; -$wb['mailbox_soft_delete_info_txt'] = 'by default cleaned up after 7 days.'; +$wb['soft_delete_directly_txt'] = 'Delete instantly'; +$wb['soft_delete_keep_indefinitely_txt'] = 'Rename but don't delete (manual cleanup)'; +$wb['soft_delete_keep_1_txt'] = 'Purge after 1 day'; +$wb['soft_delete_keep_7_txt'] = 'Purge after 7 days'; +$wb['soft_delete_keep_30_txt'] = 'Purge after 30 days'; +$wb['soft_delete_keep_90_txt'] = 'Purge after 90 days'; +$wb['soft_delete_keep_365_txt'] = 'Purge after 365 days'; diff --git a/interface/web/admin/lib/lang/ru_server_config.lng b/interface/web/admin/lib/lang/ru_server_config.lng index 5463f4497b..cdf8a5935e 100644 --- a/interface/web/admin/lib/lang/ru_server_config.lng +++ b/interface/web/admin/lib/lang/ru_server_config.lng @@ -350,4 +350,10 @@ $wb['bind_zonefiles_masterprefix_error_regex'] = 'Invalid BIND zonefiles master $wb['bind_zonefiles_slaveprefix_error_regex'] = 'Invalid BIND zonefiles slave prefix.'; $wb['bind_keyfiles_dir_error_regex'] = 'Invalid BIND keyfiles directory.'; $wb['mailbox_soft_delete_txt'] = 'Mailbox soft delete'; -$wb['mailbox_soft_delete_info_txt'] = 'by default cleaned up after 7 days.'; +$wb['soft_delete_directly_txt'] = 'Delete instantly'; +$wb['soft_delete_keep_indefinitely_txt'] = 'Rename but don't delete (manual cleanup)'; +$wb['soft_delete_keep_1_txt'] = 'Purge after 1 day'; +$wb['soft_delete_keep_7_txt'] = 'Purge after 7 days'; +$wb['soft_delete_keep_30_txt'] = 'Purge after 30 days'; +$wb['soft_delete_keep_90_txt'] = 'Purge after 90 days'; +$wb['soft_delete_keep_365_txt'] = 'Purge after 365 days'; diff --git a/interface/web/admin/lib/lang/se_server_config.lng b/interface/web/admin/lib/lang/se_server_config.lng index 58d3cbce26..145592c874 100644 --- a/interface/web/admin/lib/lang/se_server_config.lng +++ b/interface/web/admin/lib/lang/se_server_config.lng @@ -350,4 +350,10 @@ $wb['bind_zonefiles_masterprefix_error_regex'] = 'Invalid BIND zonefiles master $wb['bind_zonefiles_slaveprefix_error_regex'] = 'Invalid BIND zonefiles slave prefix.'; $wb['bind_keyfiles_dir_error_regex'] = 'Invalid BIND keyfiles directory.'; $wb['mailbox_soft_delete_txt'] = 'Mailbox soft delete'; -$wb['mailbox_soft_delete_info_txt'] = 'by default cleaned up after 7 days.'; +$wb['soft_delete_directly_txt'] = 'Delete instantly'; +$wb['soft_delete_keep_indefinitely_txt'] = 'Rename but don't delete (manual cleanup)'; +$wb['soft_delete_keep_1_txt'] = 'Purge after 1 day'; +$wb['soft_delete_keep_7_txt'] = 'Purge after 7 days'; +$wb['soft_delete_keep_30_txt'] = 'Purge after 30 days'; +$wb['soft_delete_keep_90_txt'] = 'Purge after 90 days'; +$wb['soft_delete_keep_365_txt'] = 'Purge after 365 days'; diff --git a/interface/web/admin/lib/lang/sk_server_config.lng b/interface/web/admin/lib/lang/sk_server_config.lng index b6236c2f1c..8278310478 100644 --- a/interface/web/admin/lib/lang/sk_server_config.lng +++ b/interface/web/admin/lib/lang/sk_server_config.lng @@ -350,4 +350,10 @@ $wb['bind_zonefiles_masterprefix_error_regex'] = 'Invalid BIND zonefiles master $wb['bind_zonefiles_slaveprefix_error_regex'] = 'Invalid BIND zonefiles slave prefix.'; $wb['bind_keyfiles_dir_error_regex'] = 'Invalid BIND keyfiles directory.'; $wb['mailbox_soft_delete_txt'] = 'Mailbox soft delete'; -$wb['mailbox_soft_delete_info_txt'] = 'by default cleaned up after 7 days.'; +$wb['soft_delete_directly_txt'] = 'Delete instantly'; +$wb['soft_delete_keep_indefinitely_txt'] = 'Rename but don't delete (manual cleanup)'; +$wb['soft_delete_keep_1_txt'] = 'Purge after 1 day'; +$wb['soft_delete_keep_7_txt'] = 'Purge after 7 days'; +$wb['soft_delete_keep_30_txt'] = 'Purge after 30 days'; +$wb['soft_delete_keep_90_txt'] = 'Purge after 90 days'; +$wb['soft_delete_keep_365_txt'] = 'Purge after 365 days'; diff --git a/interface/web/admin/lib/lang/tr_server_config.lng b/interface/web/admin/lib/lang/tr_server_config.lng index d75cceedcf..22b3be4e20 100644 --- a/interface/web/admin/lib/lang/tr_server_config.lng +++ b/interface/web/admin/lib/lang/tr_server_config.lng @@ -347,4 +347,10 @@ $wb['bind_zonefiles_masterprefix_error_regex'] = 'Invalid BIND zonefiles master $wb['bind_zonefiles_slaveprefix_error_regex'] = 'Invalid BIND zonefiles slave prefix.'; $wb['bind_keyfiles_dir_error_regex'] = 'Invalid BIND keyfiles directory.'; $wb['mailbox_soft_delete_txt'] = 'Mailbox soft delete'; -$wb['mailbox_soft_delete_info_txt'] = 'by default cleaned up after 7 days.'; +$wb['soft_delete_directly_txt'] = 'Delete instantly'; +$wb['soft_delete_keep_indefinitely_txt'] = 'Rename but don't delete (manual cleanup)'; +$wb['soft_delete_keep_1_txt'] = 'Purge after 1 day'; +$wb['soft_delete_keep_7_txt'] = 'Purge after 7 days'; +$wb['soft_delete_keep_30_txt'] = 'Purge after 30 days'; +$wb['soft_delete_keep_90_txt'] = 'Purge after 90 days'; +$wb['soft_delete_keep_365_txt'] = 'Purge after 365 days'; -- GitLab From ff3b2c13ae0cdc3737ed7d5706138813224eba45 Mon Sep 17 00:00:00 2001 From: Herman van Rink Date: Sun, 7 May 2023 12:30:14 +0200 Subject: [PATCH 08/15] escape --- interface/web/admin/lib/lang/ar_server_config.lng | 2 +- interface/web/admin/lib/lang/bg_server_config.lng | 2 +- interface/web/admin/lib/lang/br_server_config.lng | 2 +- interface/web/admin/lib/lang/ca_server_config.lng | 2 +- interface/web/admin/lib/lang/cn_server_config.lng | 2 +- interface/web/admin/lib/lang/cz_server_config.lng | 2 +- interface/web/admin/lib/lang/de_server_config.lng | 2 +- interface/web/admin/lib/lang/dk_server_config.lng | 2 +- interface/web/admin/lib/lang/el_server_config.lng | 2 +- interface/web/admin/lib/lang/en_server_config.lng | 2 +- interface/web/admin/lib/lang/es_server_config.lng | 2 +- interface/web/admin/lib/lang/fi_server_config.lng | 2 +- interface/web/admin/lib/lang/fr_server_config.lng | 2 +- interface/web/admin/lib/lang/hr_server_config.lng | 2 +- interface/web/admin/lib/lang/hu_server_config.lng | 2 +- interface/web/admin/lib/lang/id_server_config.lng | 2 +- interface/web/admin/lib/lang/it_server_config.lng | 2 +- interface/web/admin/lib/lang/ja_server_config.lng | 2 +- interface/web/admin/lib/lang/nl_server_config.lng | 2 +- interface/web/admin/lib/lang/pl_server_config.lng | 2 +- interface/web/admin/lib/lang/pt_server_config.lng | 2 +- interface/web/admin/lib/lang/ro_server_config.lng | 2 +- interface/web/admin/lib/lang/ru_server_config.lng | 2 +- interface/web/admin/lib/lang/se_server_config.lng | 2 +- interface/web/admin/lib/lang/sk_server_config.lng | 2 +- interface/web/admin/lib/lang/tr_server_config.lng | 2 +- 26 files changed, 26 insertions(+), 26 deletions(-) diff --git a/interface/web/admin/lib/lang/ar_server_config.lng b/interface/web/admin/lib/lang/ar_server_config.lng index 8d680d5e4c..18d7baba88 100644 --- a/interface/web/admin/lib/lang/ar_server_config.lng +++ b/interface/web/admin/lib/lang/ar_server_config.lng @@ -351,7 +351,7 @@ $wb['bind_zonefiles_slaveprefix_error_regex'] = 'Invalid BIND zonefiles slave pr $wb['bind_keyfiles_dir_error_regex'] = 'Invalid BIND keyfiles directory.'; $wb['mailbox_soft_delete_txt'] = 'Mailbox soft delete'; $wb['soft_delete_directly_txt'] = 'Delete instantly'; -$wb['soft_delete_keep_indefinitely_txt'] = 'Rename but don't delete (manual cleanup)'; +$wb['soft_delete_keep_indefinitely_txt'] = 'Rename but don\'t delete (manual cleanup)'; $wb['soft_delete_keep_1_txt'] = 'Purge after 1 day'; $wb['soft_delete_keep_7_txt'] = 'Purge after 7 days'; $wb['soft_delete_keep_30_txt'] = 'Purge after 30 days'; diff --git a/interface/web/admin/lib/lang/bg_server_config.lng b/interface/web/admin/lib/lang/bg_server_config.lng index ae2dd48193..50c5f2854f 100644 --- a/interface/web/admin/lib/lang/bg_server_config.lng +++ b/interface/web/admin/lib/lang/bg_server_config.lng @@ -351,7 +351,7 @@ $wb['bind_zonefiles_slaveprefix_error_regex'] = 'Invalid BIND zonefiles slave pr $wb['bind_keyfiles_dir_error_regex'] = 'Invalid BIND keyfiles directory.'; $wb['mailbox_soft_delete_txt'] = 'Mailbox soft delete'; $wb['soft_delete_directly_txt'] = 'Delete instantly'; -$wb['soft_delete_keep_indefinitely_txt'] = 'Rename but don't delete (manual cleanup)'; +$wb['soft_delete_keep_indefinitely_txt'] = 'Rename but don\'t delete (manual cleanup)'; $wb['soft_delete_keep_1_txt'] = 'Purge after 1 day'; $wb['soft_delete_keep_7_txt'] = 'Purge after 7 days'; $wb['soft_delete_keep_30_txt'] = 'Purge after 30 days'; diff --git a/interface/web/admin/lib/lang/br_server_config.lng b/interface/web/admin/lib/lang/br_server_config.lng index b34e898007..cd007ed66f 100644 --- a/interface/web/admin/lib/lang/br_server_config.lng +++ b/interface/web/admin/lib/lang/br_server_config.lng @@ -351,7 +351,7 @@ $wb['bind_zonefiles_slaveprefix_error_regex'] = 'Invalid BIND zonefiles slave pr $wb['bind_keyfiles_dir_error_regex'] = 'Invalid BIND keyfiles directory.'; $wb['mailbox_soft_delete_txt'] = 'Mailbox soft delete'; $wb['soft_delete_directly_txt'] = 'Delete instantly'; -$wb['soft_delete_keep_indefinitely_txt'] = 'Rename but don't delete (manual cleanup)'; +$wb['soft_delete_keep_indefinitely_txt'] = 'Rename but don\'t delete (manual cleanup)'; $wb['soft_delete_keep_1_txt'] = 'Purge after 1 day'; $wb['soft_delete_keep_7_txt'] = 'Purge after 7 days'; $wb['soft_delete_keep_30_txt'] = 'Purge after 30 days'; diff --git a/interface/web/admin/lib/lang/ca_server_config.lng b/interface/web/admin/lib/lang/ca_server_config.lng index 968daecea2..6201a01fed 100644 --- a/interface/web/admin/lib/lang/ca_server_config.lng +++ b/interface/web/admin/lib/lang/ca_server_config.lng @@ -351,7 +351,7 @@ $wb['bind_zonefiles_slaveprefix_error_regex'] = 'Invalid BIND zonefiles slave pr $wb['bind_keyfiles_dir_error_regex'] = 'Invalid BIND keyfiles directory.'; $wb['mailbox_soft_delete_txt'] = 'Mailbox soft delete'; $wb['soft_delete_directly_txt'] = 'Delete instantly'; -$wb['soft_delete_keep_indefinitely_txt'] = 'Rename but don't delete (manual cleanup)'; +$wb['soft_delete_keep_indefinitely_txt'] = 'Rename but don\'t delete (manual cleanup)'; $wb['soft_delete_keep_1_txt'] = 'Purge after 1 day'; $wb['soft_delete_keep_7_txt'] = 'Purge after 7 days'; $wb['soft_delete_keep_30_txt'] = 'Purge after 30 days'; diff --git a/interface/web/admin/lib/lang/cn_server_config.lng b/interface/web/admin/lib/lang/cn_server_config.lng index 7daa337298..bc728bb632 100644 --- a/interface/web/admin/lib/lang/cn_server_config.lng +++ b/interface/web/admin/lib/lang/cn_server_config.lng @@ -352,7 +352,7 @@ $wb['jailkit_hardlinks_no_txt'] = '不,删除硬链接文件'; $wb['jailkit_hardlinks_yes_txt'] = '是的,如果可能,使用硬链接'; $wb['mailbox_soft_delete_txt'] = '邮箱软删除'; $wb['soft_delete_directly_txt'] = 'Delete instantly'; -$wb['soft_delete_keep_indefinitely_txt'] = 'Rename but don't delete (manual cleanup)'; +$wb['soft_delete_keep_indefinitely_txt'] = 'Rename but don\'t delete (manual cleanup)'; $wb['soft_delete_keep_1_txt'] = 'Purge after 1 day'; $wb['soft_delete_keep_7_txt'] = 'Purge after 7 days'; $wb['soft_delete_keep_30_txt'] = 'Purge after 30 days'; diff --git a/interface/web/admin/lib/lang/cz_server_config.lng b/interface/web/admin/lib/lang/cz_server_config.lng index cba840bf44..11f9ae7a5a 100644 --- a/interface/web/admin/lib/lang/cz_server_config.lng +++ b/interface/web/admin/lib/lang/cz_server_config.lng @@ -351,7 +351,7 @@ $wb['bind_zonefiles_slaveprefix_error_regex'] = 'Invalid BIND zonefiles slave pr $wb['bind_keyfiles_dir_error_regex'] = 'Invalid BIND keyfiles directory.'; $wb['mailbox_soft_delete_txt'] = 'Mailbox soft delete'; $wb['soft_delete_directly_txt'] = 'Delete instantly'; -$wb['soft_delete_keep_indefinitely_txt'] = 'Rename but don't delete (manual cleanup)'; +$wb['soft_delete_keep_indefinitely_txt'] = 'Rename but don\'t delete (manual cleanup)'; $wb['soft_delete_keep_1_txt'] = 'Purge after 1 day'; $wb['soft_delete_keep_7_txt'] = 'Purge after 7 days'; $wb['soft_delete_keep_30_txt'] = 'Purge after 30 days'; diff --git a/interface/web/admin/lib/lang/de_server_config.lng b/interface/web/admin/lib/lang/de_server_config.lng index b5b8731a24..c1f3546838 100644 --- a/interface/web/admin/lib/lang/de_server_config.lng +++ b/interface/web/admin/lib/lang/de_server_config.lng @@ -351,7 +351,7 @@ $wb['bind_zonefiles_masterprefix_error_regex'] = 'Invalid BIND zonefiles master $wb['bind_zonefiles_slaveprefix_error_regex'] = 'Invalid BIND zonefiles slave prefix.'; $wb['bind_keyfiles_dir_error_regex'] = 'Invalid BIND keyfiles directory.'; $wb['soft_delete_directly_txt'] = 'Delete instantly'; -$wb['soft_delete_keep_indefinitely_txt'] = 'Rename but don't delete (manual cleanup)'; +$wb['soft_delete_keep_indefinitely_txt'] = 'Rename but don\'t delete (manual cleanup)'; $wb['soft_delete_keep_1_txt'] = 'Purge after 1 day'; $wb['soft_delete_keep_7_txt'] = 'Purge after 7 days'; $wb['soft_delete_keep_30_txt'] = 'Purge after 30 days'; diff --git a/interface/web/admin/lib/lang/dk_server_config.lng b/interface/web/admin/lib/lang/dk_server_config.lng index 15e38decf6..a693e9fa59 100644 --- a/interface/web/admin/lib/lang/dk_server_config.lng +++ b/interface/web/admin/lib/lang/dk_server_config.lng @@ -351,7 +351,7 @@ $wb['bind_zonefiles_slaveprefix_error_regex'] = 'Invalid BIND zonefiles slave pr $wb['bind_keyfiles_dir_error_regex'] = 'Invalid BIND keyfiles directory.'; $wb['mailbox_soft_delete_txt'] = 'Mailbox soft delete'; $wb['soft_delete_directly_txt'] = 'Delete instantly'; -$wb['soft_delete_keep_indefinitely_txt'] = 'Rename but don't delete (manual cleanup)'; +$wb['soft_delete_keep_indefinitely_txt'] = 'Rename but don\'t delete (manual cleanup)'; $wb['soft_delete_keep_1_txt'] = 'Purge after 1 day'; $wb['soft_delete_keep_7_txt'] = 'Purge after 7 days'; $wb['soft_delete_keep_30_txt'] = 'Purge after 30 days'; diff --git a/interface/web/admin/lib/lang/el_server_config.lng b/interface/web/admin/lib/lang/el_server_config.lng index bc29052801..ff50546229 100644 --- a/interface/web/admin/lib/lang/el_server_config.lng +++ b/interface/web/admin/lib/lang/el_server_config.lng @@ -351,7 +351,7 @@ $wb['bind_zonefiles_slaveprefix_error_regex'] = 'Invalid BIND zonefiles slave pr $wb['bind_keyfiles_dir_error_regex'] = 'Invalid BIND keyfiles directory.'; $wb['mailbox_soft_delete_txt'] = 'Mailbox soft delete'; $wb['soft_delete_directly_txt'] = 'Delete instantly'; -$wb['soft_delete_keep_indefinitely_txt'] = 'Rename but don't delete (manual cleanup)'; +$wb['soft_delete_keep_indefinitely_txt'] = 'Rename but don\'t delete (manual cleanup)'; $wb['soft_delete_keep_1_txt'] = 'Purge after 1 day'; $wb['soft_delete_keep_7_txt'] = 'Purge after 7 days'; $wb['soft_delete_keep_30_txt'] = 'Purge after 30 days'; diff --git a/interface/web/admin/lib/lang/en_server_config.lng b/interface/web/admin/lib/lang/en_server_config.lng index 1d89dc5b7a..b88f6c48f2 100644 --- a/interface/web/admin/lib/lang/en_server_config.lng +++ b/interface/web/admin/lib/lang/en_server_config.lng @@ -357,7 +357,7 @@ $wb['jailkit_hardlinks_no_txt'] = 'No, remove hardlinked files'; $wb['jailkit_hardlinks_yes_txt'] = 'Yes, use hardlinks if possible'; $wb['mailbox_soft_delete_txt'] = 'Mailbox soft delete'; $wb['soft_delete_directly_txt'] = 'Delete instantly'; -$wb['soft_delete_keep_indefinitely_txt'] = 'Rename but don't delete (manual cleanup)'; +$wb['soft_delete_keep_indefinitely_txt'] = 'Rename but don\'t delete (manual cleanup)'; $wb['soft_delete_keep_1_txt'] = 'Purge after 1 day'; $wb['soft_delete_keep_7_txt'] = 'Purge after 7 days'; $wb['soft_delete_keep_30_txt'] = 'Purge after 30 days'; diff --git a/interface/web/admin/lib/lang/es_server_config.lng b/interface/web/admin/lib/lang/es_server_config.lng index be8a52022e..24a39813cb 100644 --- a/interface/web/admin/lib/lang/es_server_config.lng +++ b/interface/web/admin/lib/lang/es_server_config.lng @@ -351,7 +351,7 @@ $wb['bind_zonefiles_slaveprefix_error_regex'] = 'Invalid BIND zonefiles slave pr $wb['bind_keyfiles_dir_error_regex'] = 'Invalid BIND keyfiles directory.'; $wb['mailbox_soft_delete_txt'] = 'Mailbox soft delete'; $wb['soft_delete_directly_txt'] = 'Delete instantly'; -$wb['soft_delete_keep_indefinitely_txt'] = 'Rename but don't delete (manual cleanup)'; +$wb['soft_delete_keep_indefinitely_txt'] = 'Rename but don\'t delete (manual cleanup)'; $wb['soft_delete_keep_1_txt'] = 'Purge after 1 day'; $wb['soft_delete_keep_7_txt'] = 'Purge after 7 days'; $wb['soft_delete_keep_30_txt'] = 'Purge after 30 days'; diff --git a/interface/web/admin/lib/lang/fi_server_config.lng b/interface/web/admin/lib/lang/fi_server_config.lng index c06c124962..72661ad302 100644 --- a/interface/web/admin/lib/lang/fi_server_config.lng +++ b/interface/web/admin/lib/lang/fi_server_config.lng @@ -351,7 +351,7 @@ $wb['bind_zonefiles_slaveprefix_error_regex'] = 'Invalid BIND zonefiles slave pr $wb['bind_keyfiles_dir_error_regex'] = 'Invalid BIND keyfiles directory.'; $wb['mailbox_soft_delete_txt'] = 'Mailbox soft delete'; $wb['soft_delete_directly_txt'] = 'Delete instantly'; -$wb['soft_delete_keep_indefinitely_txt'] = 'Rename but don't delete (manual cleanup)'; +$wb['soft_delete_keep_indefinitely_txt'] = 'Rename but don\'t delete (manual cleanup)'; $wb['soft_delete_keep_1_txt'] = 'Purge after 1 day'; $wb['soft_delete_keep_7_txt'] = 'Purge after 7 days'; $wb['soft_delete_keep_30_txt'] = 'Purge after 30 days'; diff --git a/interface/web/admin/lib/lang/fr_server_config.lng b/interface/web/admin/lib/lang/fr_server_config.lng index 32868b0b4b..3cbe20b3fc 100644 --- a/interface/web/admin/lib/lang/fr_server_config.lng +++ b/interface/web/admin/lib/lang/fr_server_config.lng @@ -351,7 +351,7 @@ $wb['bind_zonefiles_slaveprefix_error_regex'] = 'Invalid BIND zonefiles slave pr $wb['bind_keyfiles_dir_error_regex'] = 'Invalid BIND keyfiles directory.'; $wb['mailbox_soft_delete_txt'] = 'Mailbox soft delete'; $wb['soft_delete_directly_txt'] = 'Delete instantly'; -$wb['soft_delete_keep_indefinitely_txt'] = 'Rename but don't delete (manual cleanup)'; +$wb['soft_delete_keep_indefinitely_txt'] = 'Rename but don\'t delete (manual cleanup)'; $wb['soft_delete_keep_1_txt'] = 'Purge after 1 day'; $wb['soft_delete_keep_7_txt'] = 'Purge after 7 days'; $wb['soft_delete_keep_30_txt'] = 'Purge after 30 days'; diff --git a/interface/web/admin/lib/lang/hr_server_config.lng b/interface/web/admin/lib/lang/hr_server_config.lng index 429aab4c0d..cb0f82f052 100644 --- a/interface/web/admin/lib/lang/hr_server_config.lng +++ b/interface/web/admin/lib/lang/hr_server_config.lng @@ -351,7 +351,7 @@ $wb['bind_zonefiles_slaveprefix_error_regex'] = 'Invalid BIND zonefiles slave pr $wb['bind_keyfiles_dir_error_regex'] = 'Invalid BIND keyfiles directory.'; $wb['mailbox_soft_delete_txt'] = 'Mailbox soft delete'; $wb['soft_delete_directly_txt'] = 'Delete instantly'; -$wb['soft_delete_keep_indefinitely_txt'] = 'Rename but don't delete (manual cleanup)'; +$wb['soft_delete_keep_indefinitely_txt'] = 'Rename but don\'t delete (manual cleanup)'; $wb['soft_delete_keep_1_txt'] = 'Purge after 1 day'; $wb['soft_delete_keep_7_txt'] = 'Purge after 7 days'; $wb['soft_delete_keep_30_txt'] = 'Purge after 30 days'; diff --git a/interface/web/admin/lib/lang/hu_server_config.lng b/interface/web/admin/lib/lang/hu_server_config.lng index a13ccbf769..548ce7708f 100644 --- a/interface/web/admin/lib/lang/hu_server_config.lng +++ b/interface/web/admin/lib/lang/hu_server_config.lng @@ -351,7 +351,7 @@ $wb['bind_zonefiles_slaveprefix_error_regex'] = 'Invalid BIND zonefiles slave pr $wb['bind_keyfiles_dir_error_regex'] = 'Invalid BIND keyfiles directory.'; $wb['mailbox_soft_delete_txt'] = 'Mailbox soft delete'; $wb['soft_delete_directly_txt'] = 'Delete instantly'; -$wb['soft_delete_keep_indefinitely_txt'] = 'Rename but don't delete (manual cleanup)'; +$wb['soft_delete_keep_indefinitely_txt'] = 'Rename but don\'t delete (manual cleanup)'; $wb['soft_delete_keep_1_txt'] = 'Purge after 1 day'; $wb['soft_delete_keep_7_txt'] = 'Purge after 7 days'; $wb['soft_delete_keep_30_txt'] = 'Purge after 30 days'; diff --git a/interface/web/admin/lib/lang/id_server_config.lng b/interface/web/admin/lib/lang/id_server_config.lng index 6c1e026206..ddc1656986 100644 --- a/interface/web/admin/lib/lang/id_server_config.lng +++ b/interface/web/admin/lib/lang/id_server_config.lng @@ -351,7 +351,7 @@ $wb['bind_zonefiles_slaveprefix_error_regex'] = 'Invalid BIND zonefiles slave pr $wb['bind_keyfiles_dir_error_regex'] = 'Invalid BIND keyfiles directory.'; $wb['mailbox_soft_delete_txt'] = 'Mailbox soft delete'; $wb['soft_delete_directly_txt'] = 'Delete instantly'; -$wb['soft_delete_keep_indefinitely_txt'] = 'Rename but don't delete (manual cleanup)'; +$wb['soft_delete_keep_indefinitely_txt'] = 'Rename but don\'t delete (manual cleanup)'; $wb['soft_delete_keep_1_txt'] = 'Purge after 1 day'; $wb['soft_delete_keep_7_txt'] = 'Purge after 7 days'; $wb['soft_delete_keep_30_txt'] = 'Purge after 30 days'; diff --git a/interface/web/admin/lib/lang/it_server_config.lng b/interface/web/admin/lib/lang/it_server_config.lng index 1cf6d64925..38c95df3e0 100644 --- a/interface/web/admin/lib/lang/it_server_config.lng +++ b/interface/web/admin/lib/lang/it_server_config.lng @@ -350,7 +350,7 @@ $wb['bind_zonefiles_slaveprefix_error_regex'] = 'Invalid BIND zonefiles slave pr $wb['bind_keyfiles_dir_error_regex'] = 'Invalid BIND keyfiles directory.'; $wb['mailbox_soft_delete_txt'] = 'Mailbox soft delete'; $wb['soft_delete_directly_txt'] = 'Delete instantly'; -$wb['soft_delete_keep_indefinitely_txt'] = 'Rename but don't delete (manual cleanup)'; +$wb['soft_delete_keep_indefinitely_txt'] = 'Rename but don\'t delete (manual cleanup)'; $wb['soft_delete_keep_1_txt'] = 'Purge after 1 day'; $wb['soft_delete_keep_7_txt'] = 'Purge after 7 days'; $wb['soft_delete_keep_30_txt'] = 'Purge after 30 days'; diff --git a/interface/web/admin/lib/lang/ja_server_config.lng b/interface/web/admin/lib/lang/ja_server_config.lng index 4e05a32c84..4bfef54c7c 100644 --- a/interface/web/admin/lib/lang/ja_server_config.lng +++ b/interface/web/admin/lib/lang/ja_server_config.lng @@ -351,7 +351,7 @@ $wb['bind_zonefiles_slaveprefix_error_regex'] = 'Invalid BIND zonefiles slave pr $wb['bind_keyfiles_dir_error_regex'] = 'Invalid BIND keyfiles directory.'; $wb['mailbox_soft_delete_txt'] = 'Mailbox soft delete'; $wb['soft_delete_directly_txt'] = 'Delete instantly'; -$wb['soft_delete_keep_indefinitely_txt'] = 'Rename but don't delete (manual cleanup)'; +$wb['soft_delete_keep_indefinitely_txt'] = 'Rename but don\'t delete (manual cleanup)'; $wb['soft_delete_keep_1_txt'] = 'Purge after 1 day'; $wb['soft_delete_keep_7_txt'] = 'Purge after 7 days'; $wb['soft_delete_keep_30_txt'] = 'Purge after 30 days'; diff --git a/interface/web/admin/lib/lang/nl_server_config.lng b/interface/web/admin/lib/lang/nl_server_config.lng index e77c6e46a3..2a233c81d1 100644 --- a/interface/web/admin/lib/lang/nl_server_config.lng +++ b/interface/web/admin/lib/lang/nl_server_config.lng @@ -351,7 +351,7 @@ $wb['bind_zonefiles_slaveprefix_error_regex'] = 'Invalid BIND zonefiles slave pr $wb['bind_keyfiles_dir_error_regex'] = 'Invalid BIND keyfiles directory.'; $wb['mailbox_soft_delete_txt'] = 'Mailbox soft delete'; $wb['soft_delete_directly_txt'] = 'Delete instantly'; -$wb['soft_delete_keep_indefinitely_txt'] = 'Rename but don't delete (manual cleanup)'; +$wb['soft_delete_keep_indefinitely_txt'] = 'Rename but don\'t delete (manual cleanup)'; $wb['soft_delete_keep_1_txt'] = 'Purge after 1 day'; $wb['soft_delete_keep_7_txt'] = 'Purge after 7 days'; $wb['soft_delete_keep_30_txt'] = 'Purge after 30 days'; diff --git a/interface/web/admin/lib/lang/pl_server_config.lng b/interface/web/admin/lib/lang/pl_server_config.lng index 1d277a2757..9eda8df634 100644 --- a/interface/web/admin/lib/lang/pl_server_config.lng +++ b/interface/web/admin/lib/lang/pl_server_config.lng @@ -351,7 +351,7 @@ $wb['bind_zonefiles_slaveprefix_error_regex'] = 'Invalid BIND zonefiles slave pr $wb['bind_keyfiles_dir_error_regex'] = 'Invalid BIND keyfiles directory.'; $wb['mailbox_soft_delete_txt'] = 'Mailbox soft delete'; $wb['soft_delete_directly_txt'] = 'Delete instantly'; -$wb['soft_delete_keep_indefinitely_txt'] = 'Rename but don't delete (manual cleanup)'; +$wb['soft_delete_keep_indefinitely_txt'] = 'Rename but don\'t delete (manual cleanup)'; $wb['soft_delete_keep_1_txt'] = 'Purge after 1 day'; $wb['soft_delete_keep_7_txt'] = 'Purge after 7 days'; $wb['soft_delete_keep_30_txt'] = 'Purge after 30 days'; diff --git a/interface/web/admin/lib/lang/pt_server_config.lng b/interface/web/admin/lib/lang/pt_server_config.lng index 6d338ee50c..091fcbb208 100644 --- a/interface/web/admin/lib/lang/pt_server_config.lng +++ b/interface/web/admin/lib/lang/pt_server_config.lng @@ -351,7 +351,7 @@ $wb['bind_zonefiles_slaveprefix_error_regex'] = 'Invalid BIND zonefiles slave pr $wb['bind_keyfiles_dir_error_regex'] = 'Invalid BIND keyfiles directory.'; $wb['mailbox_soft_delete_txt'] = 'Mailbox soft delete'; $wb['soft_delete_directly_txt'] = 'Delete instantly'; -$wb['soft_delete_keep_indefinitely_txt'] = 'Rename but don't delete (manual cleanup)'; +$wb['soft_delete_keep_indefinitely_txt'] = 'Rename but don\'t delete (manual cleanup)'; $wb['soft_delete_keep_1_txt'] = 'Purge after 1 day'; $wb['soft_delete_keep_7_txt'] = 'Purge after 7 days'; $wb['soft_delete_keep_30_txt'] = 'Purge after 30 days'; diff --git a/interface/web/admin/lib/lang/ro_server_config.lng b/interface/web/admin/lib/lang/ro_server_config.lng index d713897179..f56ba7011e 100644 --- a/interface/web/admin/lib/lang/ro_server_config.lng +++ b/interface/web/admin/lib/lang/ro_server_config.lng @@ -351,7 +351,7 @@ $wb['bind_zonefiles_slaveprefix_error_regex'] = 'Invalid BIND zonefiles slave pr $wb['bind_keyfiles_dir_error_regex'] = 'Invalid BIND keyfiles directory.'; $wb['mailbox_soft_delete_txt'] = 'Mailbox soft delete'; $wb['soft_delete_directly_txt'] = 'Delete instantly'; -$wb['soft_delete_keep_indefinitely_txt'] = 'Rename but don't delete (manual cleanup)'; +$wb['soft_delete_keep_indefinitely_txt'] = 'Rename but don\'t delete (manual cleanup)'; $wb['soft_delete_keep_1_txt'] = 'Purge after 1 day'; $wb['soft_delete_keep_7_txt'] = 'Purge after 7 days'; $wb['soft_delete_keep_30_txt'] = 'Purge after 30 days'; diff --git a/interface/web/admin/lib/lang/ru_server_config.lng b/interface/web/admin/lib/lang/ru_server_config.lng index cdf8a5935e..8b72f3ad98 100644 --- a/interface/web/admin/lib/lang/ru_server_config.lng +++ b/interface/web/admin/lib/lang/ru_server_config.lng @@ -351,7 +351,7 @@ $wb['bind_zonefiles_slaveprefix_error_regex'] = 'Invalid BIND zonefiles slave pr $wb['bind_keyfiles_dir_error_regex'] = 'Invalid BIND keyfiles directory.'; $wb['mailbox_soft_delete_txt'] = 'Mailbox soft delete'; $wb['soft_delete_directly_txt'] = 'Delete instantly'; -$wb['soft_delete_keep_indefinitely_txt'] = 'Rename but don't delete (manual cleanup)'; +$wb['soft_delete_keep_indefinitely_txt'] = 'Rename but don\'t delete (manual cleanup)'; $wb['soft_delete_keep_1_txt'] = 'Purge after 1 day'; $wb['soft_delete_keep_7_txt'] = 'Purge after 7 days'; $wb['soft_delete_keep_30_txt'] = 'Purge after 30 days'; diff --git a/interface/web/admin/lib/lang/se_server_config.lng b/interface/web/admin/lib/lang/se_server_config.lng index 145592c874..cf47494a57 100644 --- a/interface/web/admin/lib/lang/se_server_config.lng +++ b/interface/web/admin/lib/lang/se_server_config.lng @@ -351,7 +351,7 @@ $wb['bind_zonefiles_slaveprefix_error_regex'] = 'Invalid BIND zonefiles slave pr $wb['bind_keyfiles_dir_error_regex'] = 'Invalid BIND keyfiles directory.'; $wb['mailbox_soft_delete_txt'] = 'Mailbox soft delete'; $wb['soft_delete_directly_txt'] = 'Delete instantly'; -$wb['soft_delete_keep_indefinitely_txt'] = 'Rename but don't delete (manual cleanup)'; +$wb['soft_delete_keep_indefinitely_txt'] = 'Rename but don\'t delete (manual cleanup)'; $wb['soft_delete_keep_1_txt'] = 'Purge after 1 day'; $wb['soft_delete_keep_7_txt'] = 'Purge after 7 days'; $wb['soft_delete_keep_30_txt'] = 'Purge after 30 days'; diff --git a/interface/web/admin/lib/lang/sk_server_config.lng b/interface/web/admin/lib/lang/sk_server_config.lng index 8278310478..10203054e6 100644 --- a/interface/web/admin/lib/lang/sk_server_config.lng +++ b/interface/web/admin/lib/lang/sk_server_config.lng @@ -351,7 +351,7 @@ $wb['bind_zonefiles_slaveprefix_error_regex'] = 'Invalid BIND zonefiles slave pr $wb['bind_keyfiles_dir_error_regex'] = 'Invalid BIND keyfiles directory.'; $wb['mailbox_soft_delete_txt'] = 'Mailbox soft delete'; $wb['soft_delete_directly_txt'] = 'Delete instantly'; -$wb['soft_delete_keep_indefinitely_txt'] = 'Rename but don't delete (manual cleanup)'; +$wb['soft_delete_keep_indefinitely_txt'] = 'Rename but don\'t delete (manual cleanup)'; $wb['soft_delete_keep_1_txt'] = 'Purge after 1 day'; $wb['soft_delete_keep_7_txt'] = 'Purge after 7 days'; $wb['soft_delete_keep_30_txt'] = 'Purge after 30 days'; diff --git a/interface/web/admin/lib/lang/tr_server_config.lng b/interface/web/admin/lib/lang/tr_server_config.lng index 22b3be4e20..626371d033 100644 --- a/interface/web/admin/lib/lang/tr_server_config.lng +++ b/interface/web/admin/lib/lang/tr_server_config.lng @@ -348,7 +348,7 @@ $wb['bind_zonefiles_slaveprefix_error_regex'] = 'Invalid BIND zonefiles slave pr $wb['bind_keyfiles_dir_error_regex'] = 'Invalid BIND keyfiles directory.'; $wb['mailbox_soft_delete_txt'] = 'Mailbox soft delete'; $wb['soft_delete_directly_txt'] = 'Delete instantly'; -$wb['soft_delete_keep_indefinitely_txt'] = 'Rename but don't delete (manual cleanup)'; +$wb['soft_delete_keep_indefinitely_txt'] = 'Rename but don\'t delete (manual cleanup)'; $wb['soft_delete_keep_1_txt'] = 'Purge after 1 day'; $wb['soft_delete_keep_7_txt'] = 'Purge after 7 days'; $wb['soft_delete_keep_30_txt'] = 'Purge after 30 days'; -- GitLab From d092bacdc3b6bc8c9c14fed9e09e3394d8c4c13f Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Thu, 25 May 2023 16:19:26 +0000 Subject: [PATCH 09/15] Handle value conversion for mailbox_soft_delete in PHP code --- server/lib/classes/cron.d/500-clean_mailboxes.inc.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/server/lib/classes/cron.d/500-clean_mailboxes.inc.php b/server/lib/classes/cron.d/500-clean_mailboxes.inc.php index 2b6d073a98..4f6283aae4 100755 --- a/server/lib/classes/cron.d/500-clean_mailboxes.inc.php +++ b/server/lib/classes/cron.d/500-clean_mailboxes.inc.php @@ -115,6 +115,12 @@ class cronjob_clean_mailboxes extends cronjob { global $app, $conf; $mail_config = $app->getconf->get_server_config($conf["server_id"], 'mail'); + // Convert olf values in mailbox_soft_delete field + if(isset($mail_config['mailbox_soft_delete']) && $mail_config['mailbox_soft_delete'] == 'n') $mail_config['mailbox_soft_delete'] = 0; + if(isset($mail_config['mailbox_soft_delete']) && $mail_config['mailbox_soft_delete'] == 'y') $mail_config['mailbox_soft_delete'] = 7; + $mail_config['mailbox_soft_delete'] = intval($mail_config['mailbox_soft_delete']); + + if ($mail_config['mailbox_soft_delete'] > 0) { $matched_dirs = glob($mail_config['homedir_path'] . "/*/[a-z0-9.-]*-deleted-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]"); -- GitLab From 06b03444926b9ecfc47e3556d04968a515e27c9a Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Thu, 25 May 2023 16:21:38 +0000 Subject: [PATCH 10/15] Update upd_dev_collection.sql to remove regex mysql functions that will fail on older MySQL versions. --- install/sql/incremental/upd_dev_collection.sql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/install/sql/incremental/upd_dev_collection.sql b/install/sql/incremental/upd_dev_collection.sql index cec31dae2c..bb81a3c18c 100644 --- a/install/sql/incremental/upd_dev_collection.sql +++ b/install/sql/incremental/upd_dev_collection.sql @@ -8,5 +8,5 @@ UPDATE `dns_ssl_ca` SET `ca_name` = 'Sectigo (formerly Comodo CA)' WHERE `ca_iss -- not updating the dns_rr table to change all CAA records that have comodo.com / comodoca.com - we should not touch users records imo - TP -- #6445 Update the mailbox_soft_delete config option to it's new structure. -UPDATE server SET config=REGEXP_REPLACE(config, 'mailbox_soft_delete=n', 'mailbox_soft_delete=0') WHERE config LIKE '%mailbox_soft_delete=n%' -UPDATE server SET config=REGEXP_REPLACE(config, 'mailbox_soft_delete=y', 'mailbox_soft_delete=7') WHERE config LIKE '%mailbox_soft_delete=y%' +-- UPDATE server SET config=REGEXP_REPLACE(config, 'mailbox_soft_delete=n', 'mailbox_soft_delete=0') WHERE config LIKE '%mailbox_soft_delete=n%' +-- UPDATE server SET config=REGEXP_REPLACE(config, 'mailbox_soft_delete=y', 'mailbox_soft_delete=7') WHERE config LIKE '%mailbox_soft_delete=y%' -- GitLab From 70c4945c6eac2dc3528c25acc47bb624a2e0653f Mon Sep 17 00:00:00 2001 From: Herman van Rink Date: Thu, 25 May 2023 19:09:38 +0200 Subject: [PATCH 11/15] typo + whitespace --- server/lib/classes/cron.d/500-clean_mailboxes.inc.php | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/server/lib/classes/cron.d/500-clean_mailboxes.inc.php b/server/lib/classes/cron.d/500-clean_mailboxes.inc.php index 4f6283aae4..f05cb7a3d4 100755 --- a/server/lib/classes/cron.d/500-clean_mailboxes.inc.php +++ b/server/lib/classes/cron.d/500-clean_mailboxes.inc.php @@ -31,8 +31,8 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. class cronjob_clean_mailboxes extends cronjob { // should run before quota notify and backup - // quota notify and backup is both '0 0 * * *' - + // quota notify and backup is both '0 0 * * *' + // job schedule protected $_schedule = '00 22 * * *'; @@ -77,7 +77,7 @@ class cronjob_clean_mailboxes extends cronjob { WHERE maildir_format = 'maildir' AND disableimap = 'n' AND server_id = ? AND (purge_trash_days > 0 OR purge_junk_days > 0)", $server_id); - + if(is_array($records) && !empty($records)) { foreach($records as $email) { @@ -115,12 +115,11 @@ class cronjob_clean_mailboxes extends cronjob { global $app, $conf; $mail_config = $app->getconf->get_server_config($conf["server_id"], 'mail'); - // Convert olf values in mailbox_soft_delete field + // Convert old values in mailbox_soft_delete field. if(isset($mail_config['mailbox_soft_delete']) && $mail_config['mailbox_soft_delete'] == 'n') $mail_config['mailbox_soft_delete'] = 0; if(isset($mail_config['mailbox_soft_delete']) && $mail_config['mailbox_soft_delete'] == 'y') $mail_config['mailbox_soft_delete'] = 7; $mail_config['mailbox_soft_delete'] = intval($mail_config['mailbox_soft_delete']); - if ($mail_config['mailbox_soft_delete'] > 0) { $matched_dirs = glob($mail_config['homedir_path'] . "/*/[a-z0-9.-]*-deleted-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]"); -- GitLab From a4aab7f0dd5e914b8a4690ec61920dd495d5519c Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Thu, 25 May 2023 17:15:41 +0000 Subject: [PATCH 12/15] Update 500-clean_mailboxes.inc.php --- .../cron.d/500-clean_mailboxes.inc.php | 31 ++++++++++--------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/server/lib/classes/cron.d/500-clean_mailboxes.inc.php b/server/lib/classes/cron.d/500-clean_mailboxes.inc.php index f05cb7a3d4..6a275db85a 100755 --- a/server/lib/classes/cron.d/500-clean_mailboxes.inc.php +++ b/server/lib/classes/cron.d/500-clean_mailboxes.inc.php @@ -31,8 +31,8 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. class cronjob_clean_mailboxes extends cronjob { // should run before quota notify and backup - // quota notify and backup is both '0 0 * * *' - + // quota notify and backup is both '0 0 * * *' + // job schedule protected $_schedule = '00 22 * * *'; @@ -77,7 +77,7 @@ class cronjob_clean_mailboxes extends cronjob { WHERE maildir_format = 'maildir' AND disableimap = 'n' AND server_id = ? AND (purge_trash_days > 0 OR purge_junk_days > 0)", $server_id); - + if(is_array($records) && !empty($records)) { foreach($records as $email) { @@ -115,22 +115,25 @@ class cronjob_clean_mailboxes extends cronjob { global $app, $conf; $mail_config = $app->getconf->get_server_config($conf["server_id"], 'mail'); - // Convert old values in mailbox_soft_delete field. + // Convert old values in mailbox_soft_delete field if(isset($mail_config['mailbox_soft_delete']) && $mail_config['mailbox_soft_delete'] == 'n') $mail_config['mailbox_soft_delete'] = 0; if(isset($mail_config['mailbox_soft_delete']) && $mail_config['mailbox_soft_delete'] == 'y') $mail_config['mailbox_soft_delete'] = 7; $mail_config['mailbox_soft_delete'] = intval($mail_config['mailbox_soft_delete']); + if ($mail_config['mailbox_soft_delete'] > 0) { - $matched_dirs = glob($mail_config['homedir_path'] . "/*/[a-z0-9.-]*-deleted-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]"); - - if (!empty($matched_dirs)) { - $delay_days = $mail_config['mailbox_soft_delete']; - foreach($matched_dirs as $dir) { - if (is_dir($dir)) { - $mtime = filemtime($dir); - if ($mtime < strtotime("-$delay_days days")) { - // do remove - $app->system->exec_safe('rm -rf ?', $dir); + if(isset($mail_config['homedir_path']) || strlen($mail_config['homedir_path']) > 4) { + $matched_dirs = glob($mail_config['homedir_path'] . "/*/[a-z0-9.-]*-deleted-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]"); + + if (!empty($matched_dirs)) { + $delay_days = $mail_config['mailbox_soft_delete']; + foreach($matched_dirs as $dir) { + if (is_dir($dir)) { + $mtime = filemtime($dir); + if ($mtime < strtotime("-$delay_days days")) { + // do remove + $app->system->exec_safe('sudo -u vmail rm -rf ?', $dir); + } } } } -- GitLab From f49bbf8204c929fc022d654dd1afd60d5cdc0015 Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Thu, 25 May 2023 17:26:09 +0000 Subject: [PATCH 13/15] Update 500-clean_mailboxes.inc.php --- server/lib/classes/cron.d/500-clean_mailboxes.inc.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/server/lib/classes/cron.d/500-clean_mailboxes.inc.php b/server/lib/classes/cron.d/500-clean_mailboxes.inc.php index 6a275db85a..b5e3db4425 100755 --- a/server/lib/classes/cron.d/500-clean_mailboxes.inc.php +++ b/server/lib/classes/cron.d/500-clean_mailboxes.inc.php @@ -128,7 +128,8 @@ class cronjob_clean_mailboxes extends cronjob { if (!empty($matched_dirs)) { $delay_days = $mail_config['mailbox_soft_delete']; foreach($matched_dirs as $dir) { - if (is_dir($dir)) { + $owner = posix_getpwuid(fileowner($dir)) + if (is_dir($dir) && is_array($owner) && $owner['name'] = 'vmail') { $mtime = filemtime($dir); if ($mtime < strtotime("-$delay_days days")) { // do remove -- GitLab From e613c7ae70d7a392c05cdee0087655821edf591d Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Thu, 25 May 2023 17:27:36 +0000 Subject: [PATCH 14/15] Update 500-clean_mailboxes.inc.php --- server/lib/classes/cron.d/500-clean_mailboxes.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/lib/classes/cron.d/500-clean_mailboxes.inc.php b/server/lib/classes/cron.d/500-clean_mailboxes.inc.php index b5e3db4425..0d51e533e4 100755 --- a/server/lib/classes/cron.d/500-clean_mailboxes.inc.php +++ b/server/lib/classes/cron.d/500-clean_mailboxes.inc.php @@ -129,7 +129,7 @@ class cronjob_clean_mailboxes extends cronjob { $delay_days = $mail_config['mailbox_soft_delete']; foreach($matched_dirs as $dir) { $owner = posix_getpwuid(fileowner($dir)) - if (is_dir($dir) && is_array($owner) && $owner['name'] = 'vmail') { + if (is_dir($dir) && is_array($owner) && $owner['name'] == 'vmail') { $mtime = filemtime($dir); if ($mtime < strtotime("-$delay_days days")) { // do remove -- GitLab From 046ba49f9fa82f1100e4f576bcc283c43a526a6a Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Thu, 25 May 2023 18:11:57 +0000 Subject: [PATCH 15/15] Update 500-clean_mailboxes.inc.php --- server/lib/classes/cron.d/500-clean_mailboxes.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/lib/classes/cron.d/500-clean_mailboxes.inc.php b/server/lib/classes/cron.d/500-clean_mailboxes.inc.php index 0d51e533e4..a1a053fcca 100755 --- a/server/lib/classes/cron.d/500-clean_mailboxes.inc.php +++ b/server/lib/classes/cron.d/500-clean_mailboxes.inc.php @@ -128,7 +128,7 @@ class cronjob_clean_mailboxes extends cronjob { if (!empty($matched_dirs)) { $delay_days = $mail_config['mailbox_soft_delete']; foreach($matched_dirs as $dir) { - $owner = posix_getpwuid(fileowner($dir)) + $owner = posix_getpwuid(fileowner($dir)); if (is_dir($dir) && is_array($owner) && $owner['name'] == 'vmail') { $mtime = filemtime($dir); if ($mtime < strtotime("-$delay_days days")) { -- GitLab