diff --git a/data/web/admin.php b/data/web/admin.php index 6826fec5..abcac5e5 100644 --- a/data/web/admin.php +++ b/data/web/admin.php @@ -621,18 +621,24 @@ $tfa_data = get_tfa();
-
+
-
+
+
+
+ + +
+
diff --git a/data/web/inc/functions.quarantine.inc.php b/data/web/inc/functions.quarantine.inc.php index 34dbf39a..1216b61e 100644 --- a/data/web/inc/functions.quarantine.inc.php +++ b/data/web/inc/functions.quarantine.inc.php @@ -296,13 +296,18 @@ function quarantine($_action, $_data = null) { $release_format = 'raw'; } $max_size = $_data['max_size']; + $max_age = intval($_data['max_age']); $subject = $_data['subject']; $sender = $_data['sender']; $html = $_data['html_tmpl']; + if ($max_age <= 0) { + $max_age = 365; + } $exclude_domains = (array)$_data['exclude_domains']; try { $redis->Set('Q_RETENTION_SIZE', intval($retention_size)); $redis->Set('Q_MAX_SIZE', intval($max_size)); + $redis->Set('Q_MAX_AGE', $max_age); $redis->Set('Q_EXCLUDE_DOMAINS', json_encode($exclude_domains)); $redis->Set('Q_RELEASE_FORMAT', $release_format); $redis->Set('Q_SENDER', $sender); @@ -647,6 +652,7 @@ function quarantine($_action, $_data = null) { $settings['exclude_domains'] = json_decode($redis->Get('Q_EXCLUDE_DOMAINS'), true); } $settings['max_size'] = $redis->Get('Q_MAX_SIZE'); + $settings['max_age'] = $redis->Get('Q_MAX_AGE'); $settings['retention_size'] = $redis->Get('Q_RETENTION_SIZE'); $settings['release_format'] = $redis->Get('Q_RELEASE_FORMAT'); $settings['subject'] = $redis->Get('Q_SUBJ'); diff --git a/data/web/lang/lang.de.php b/data/web/lang/lang.de.php index 89f37a5d..c5fa06ac 100644 --- a/data/web/lang/lang.de.php +++ b/data/web/lang/lang.de.php @@ -650,6 +650,7 @@ $lang['admin']['active_rspamd_settings_map'] = "Derzeit aktive Settings Map"; $lang['admin']['quota_notifications_info'] = "Quota Benachrichtigungen werden an Mailboxen versendet, die 80 respektive 95 Prozent der zur Verfügung stehenden Quota überschreiten."; $lang['admin']['quarantine_retention_size'] = "Rückhaltungen pro Mailbox:
0 bedeutet inaktiv."; $lang['admin']['quarantine_max_size'] = "Maximale Größe in MiB (größere Elemente werden verworfen):
0 bedeutet nicht unlimitert."; +$lang['admin']['quarantine_max_age'] = "Maximales Alter in Tagen
Wert muss größer oder gleich 1 Tag sein."; $lang['admin']['quarantine_exclude_domains'] = "Domains und Alias-Domains ausschließen"; $lang['admin']['quarantine_notification_sender'] = "Benachrichtigungs-E-Mail Absender"; $lang['admin']['quota_notification_sender'] = "Benachrichtigungs-E-Mail Absender"; diff --git a/data/web/lang/lang.en.php b/data/web/lang/lang.en.php index b5751deb..f8d48f5f 100644 --- a/data/web/lang/lang.en.php +++ b/data/web/lang/lang.en.php @@ -687,6 +687,7 @@ $lang['admin']['active_rspamd_settings_map'] = "Active settings map"; $lang['admin']['quota_notifications_info'] = "Quota notications are sent to users once when crossing 80% and once when crossing 95% usage."; $lang['admin']['quarantine_retention_size'] = "Retentions per mailbox:
0 indicates inactive."; $lang['admin']['quarantine_max_size'] = "Maximum size in MiB (larger elements are discarded):
0 does not indicate unlimited."; +$lang['admin']['quarantine_max_age'] = "Maximum age in days
Value must be equal to or greater than 1 day."; $lang['admin']['quarantine_exclude_domains'] = "Exclude domains and alias-domains"; $lang['admin']['quarantine_release_format'] = "Format of released items"; $lang['admin']['quarantine_release_format_raw'] = "Unmodified original";