diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php
index a73b9d0922f82f3e29d4192f176aadd730f163fe..71753a6b3317276d0c936954d346cfb53783b736 100644
--- a/install/lib/installer_base.lib.php
+++ b/install/lib/installer_base.lib.php
@@ -3847,6 +3847,10 @@ 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 a4544171d58757bcb1959a39ad56ea774401c0e9..7c371a217168daccacdedd378f76b4b532367bb6 100644
--- a/install/tpl/server.ini.master
+++ b/install/tpl/server.ini.master
@@ -56,6 +56,7 @@ relayhost_user=
 relayhost_password=
 mailbox_size_limit=0
 message_size_limit=0
+mailbox_soft_delete=n
 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 eb291d02ba142bfd4340e43f41099e8ac309cc73..bede61a3ddde653c85f7581940b2cb19a31c25ff 100644
--- a/interface/web/admin/form/server_config.tform.php
+++ b/interface/web/admin/form/server_config.tform.php
@@ -734,6 +734,12 @@ $form["tabs"]['mail'] = array(
 			'default' => 'y',
 			'value' => array(0 => 'n', 1 => 'y')
 		),
+		'mailbox_soft_delete' => array (
+			'datatype' => 'VARCHAR',
+			'formtype' => 'CHECKBOX',
+			'default' => 'n',
+			'value' => array(0 => 'n', 1 => 'y')
+		),
 		'mailbox_quota_stats' => array (
 			'datatype' => 'VARCHAR',
 			'formtype' => 'CHECKBOX',
diff --git a/interface/web/admin/lib/lang/ar_server_config.lng b/interface/web/admin/lib/lang/ar_server_config.lng
index 56331a97da8026204d7dcea59a6a7c8457b1af3e..a58dbaaf442c274b590cbd7727519b9b22977c44 100644
--- a/interface/web/admin/lib/lang/ar_server_config.lng
+++ b/interface/web/admin/lib/lang/ar_server_config.lng
@@ -342,3 +342,5 @@ $wb['tooltip_jailkit_hardlinks_txt'] = 'Using hardlinks is insecure, but saves d
 $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.';
diff --git a/interface/web/admin/lib/lang/bg_server_config.lng b/interface/web/admin/lib/lang/bg_server_config.lng
index 8a741a641b2e710bfb2fb3544758f7c29dca9cfc..c856e7640f22a2ff2403c35f690ad969c44ffbf5 100644
--- a/interface/web/admin/lib/lang/bg_server_config.lng
+++ b/interface/web/admin/lib/lang/bg_server_config.lng
@@ -342,3 +342,5 @@ $wb['tooltip_jailkit_hardlinks_txt'] = 'Using hardlinks is insecure, but saves d
 $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.';
diff --git a/interface/web/admin/lib/lang/br_server_config.lng b/interface/web/admin/lib/lang/br_server_config.lng
index af3eb367ee7eb3c0a373226af5c6eb503dc67ae0..1041676ceb8e7768b22f4fad64451671ba6596fd 100644
--- a/interface/web/admin/lib/lang/br_server_config.lng
+++ b/interface/web/admin/lib/lang/br_server_config.lng
@@ -342,3 +342,5 @@ $wb['tooltip_jailkit_hardlinks_txt'] = 'Usar links físicos é inseguro, mas eco
 $wb['jailkit_hardlinks_allow_txt'] = 'Permitir links físicos enjaulados';
 $wb['jailkit_hardlinks_no_txt'] = 'Não, remover arquivos de links físicos';
 $wb['jailkit_hardlinks_yes_txt'] = 'Sim, usar links físicos quando possível';
+$wb['mailbox_soft_delete_txt'] = 'Mailbox soft delete';
+$wb['mailbox_soft_delete_info_txt'] = 'by default cleaned up after 7 days.';
diff --git a/interface/web/admin/lib/lang/ca_server_config.lng b/interface/web/admin/lib/lang/ca_server_config.lng
index 0bc67affe076d7ea99328fd648003d8986bb0ffd..3d4ad3a70ccccede67f36108b25e4b92961fef71 100644
--- a/interface/web/admin/lib/lang/ca_server_config.lng
+++ b/interface/web/admin/lib/lang/ca_server_config.lng
@@ -342,3 +342,5 @@ $wb['tooltip_jailkit_hardlinks_txt'] = 'Using hardlinks is insecure, but saves d
 $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.';
diff --git a/interface/web/admin/lib/lang/cz_server_config.lng b/interface/web/admin/lib/lang/cz_server_config.lng
index bf86abd2ba75e0e69de55509b94b9272b23c35db..bdc1152cbc8fb47580f456932221a30c8567cc04 100644
--- a/interface/web/admin/lib/lang/cz_server_config.lng
+++ b/interface/web/admin/lib/lang/cz_server_config.lng
@@ -342,3 +342,5 @@ $wb['tooltip_jailkit_hardlinks_txt'] = 'Using hardlinks is insecure, but saves d
 $wb['jailkit_hardlinks_allow_txt'] = 'Allow hardlinks within the jail';
 $wb['jailkit_hardlinks_no_txt'] = 'Ne, odstranit soubory s pevným odkazem';
 $wb['jailkit_hardlinks_yes_txt'] = 'Ano, pokud je to možné, použijte pevné odkazy';
+$wb['mailbox_soft_delete_txt'] = 'Mailbox soft delete';
+$wb['mailbox_soft_delete_info_txt'] = 'by default cleaned up after 7 days.';
diff --git a/interface/web/admin/lib/lang/de_server_config.lng b/interface/web/admin/lib/lang/de_server_config.lng
index 2a2cbc5223be4659de121ca2f6760cbd37ffb99d..6dc7844c4cf8d1ec51c2bf17a7e5c31785935d86 100644
--- a/interface/web/admin/lib/lang/de_server_config.lng
+++ b/interface/web/admin/lib/lang/de_server_config.lng
@@ -342,3 +342,5 @@ $wb['tooltip_jailkit_hardlinks_txt'] = 'Using hardlinks is insecure, but saves d
 $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.';
diff --git a/interface/web/admin/lib/lang/dk_server_config.lng b/interface/web/admin/lib/lang/dk_server_config.lng
index 722c68889e1d491e08814b328fa2553d824acc69..d7b081150d835177796a524cf2c7c4731a1edd3d 100644
--- a/interface/web/admin/lib/lang/dk_server_config.lng
+++ b/interface/web/admin/lib/lang/dk_server_config.lng
@@ -342,3 +342,5 @@ $wb['tooltip_jailkit_hardlinks_txt'] = 'Using hardlinks is insecure, but saves d
 $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.';
diff --git a/interface/web/admin/lib/lang/el_server_config.lng b/interface/web/admin/lib/lang/el_server_config.lng
index 4a6d1eb3e20756deb1f1234abeee97259ba23621..40af42057f56a1edac7f89be55462fdbd0ef073d 100644
--- a/interface/web/admin/lib/lang/el_server_config.lng
+++ b/interface/web/admin/lib/lang/el_server_config.lng
@@ -342,3 +342,5 @@ $wb['tooltip_jailkit_hardlinks_txt'] = 'Using hardlinks is insecure, but saves d
 $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.';
diff --git a/interface/web/admin/lib/lang/en_server_config.lng b/interface/web/admin/lib/lang/en_server_config.lng
index fc4d12e0c84a27aeb02f1f168ef8737439fc3665..748e4c6d581bd9c9533e5c7d00fe4bcad3ec75c7 100644
--- a/interface/web/admin/lib/lang/en_server_config.lng
+++ b/interface/web/admin/lib/lang/en_server_config.lng
@@ -348,3 +348,5 @@ $wb['tooltip_jailkit_hardlinks_txt'] = 'Using hardlinks is insecure, but saves d
 $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.';
diff --git a/interface/web/admin/lib/lang/es_server_config.lng b/interface/web/admin/lib/lang/es_server_config.lng
index 9a49046ad9eb89a1371d5824203e5d443cef50f9..528dfe36afd0f2e36cf87a1894fcf4e243232956 100644
--- a/interface/web/admin/lib/lang/es_server_config.lng
+++ b/interface/web/admin/lib/lang/es_server_config.lng
@@ -342,3 +342,5 @@ $wb['tooltip_jailkit_hardlinks_txt'] = 'Using hardlinks is insecure, but saves d
 $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.';
diff --git a/interface/web/admin/lib/lang/fi_server_config.lng b/interface/web/admin/lib/lang/fi_server_config.lng
index abf945364630f29fe8e17a0fa6a757c1e46ba8f4..906013f7858a1cc25e9c4cdbd0dbd3c7dbb089ac 100644
--- a/interface/web/admin/lib/lang/fi_server_config.lng
+++ b/interface/web/admin/lib/lang/fi_server_config.lng
@@ -342,3 +342,5 @@ $wb['tooltip_jailkit_hardlinks_txt'] = 'Using hardlinks is insecure, but saves d
 $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.';
diff --git a/interface/web/admin/lib/lang/fr_server_config.lng b/interface/web/admin/lib/lang/fr_server_config.lng
index d569e520a962192f6c82192f2dd6029d0ecb67ef..274c2b6804d2e4614db220eb40daeeaa33386c7f 100644
--- a/interface/web/admin/lib/lang/fr_server_config.lng
+++ b/interface/web/admin/lib/lang/fr_server_config.lng
@@ -342,3 +342,5 @@ $wb['tooltip_jailkit_hardlinks_txt'] = 'Using hardlinks is insecure, but saves d
 $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.';
diff --git a/interface/web/admin/lib/lang/hr_server_config.lng b/interface/web/admin/lib/lang/hr_server_config.lng
index fa34621e95b7d781b1091af45de6344d1c7fe96e..5d35d0d33f0f54f2d3db52e00a4d392d84adb9b0 100644
--- a/interface/web/admin/lib/lang/hr_server_config.lng
+++ b/interface/web/admin/lib/lang/hr_server_config.lng
@@ -342,3 +342,5 @@ $wb['tooltip_jailkit_hardlinks_txt'] = 'Using hardlinks is insecure, but saves d
 $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.';
diff --git a/interface/web/admin/lib/lang/hu_server_config.lng b/interface/web/admin/lib/lang/hu_server_config.lng
index 6c73a7d20b7c793cce96b44f2aa841491abf51b9..74a5b15701a1cfe7e62aceae242b43380a60d3ce 100644
--- a/interface/web/admin/lib/lang/hu_server_config.lng
+++ b/interface/web/admin/lib/lang/hu_server_config.lng
@@ -342,3 +342,5 @@ $wb['tooltip_jailkit_hardlinks_txt'] = 'Using hardlinks is insecure, but saves d
 $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.';
diff --git a/interface/web/admin/lib/lang/id_server_config.lng b/interface/web/admin/lib/lang/id_server_config.lng
index 8a06d38b48813bee0df1b108f9a96497360f5cf7..2419ee63f11e5c0de004df8184588a8640b1b4b4 100644
--- a/interface/web/admin/lib/lang/id_server_config.lng
+++ b/interface/web/admin/lib/lang/id_server_config.lng
@@ -342,3 +342,5 @@ $wb['tooltip_jailkit_hardlinks_txt'] = 'Using hardlinks is insecure, but saves d
 $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.';
diff --git a/interface/web/admin/lib/lang/it_server_config.lng b/interface/web/admin/lib/lang/it_server_config.lng
index 384cb653433fe2e317fde73ced52d5f5b44b77fd..4d01d70b22a266f1f3be3472b759a01f2318597a 100644
--- a/interface/web/admin/lib/lang/it_server_config.lng
+++ b/interface/web/admin/lib/lang/it_server_config.lng
@@ -341,3 +341,5 @@ $wb['tooltip_jailkit_hardlinks_txt'] = 'L\'uso di hardlinks è meno sicuro però
 $wb['jailkit_hardlinks_allow_txt'] = 'Consenti hardlinks all\'interno di jail';
 $wb['jailkit_hardlinks_no_txt'] = 'No, rimuovi i file con hardlink';
 $wb['jailkit_hardlinks_yes_txt'] = 'Si, usa hardlinks se possibile';
+$wb['mailbox_soft_delete_txt'] = 'Mailbox soft delete';
+$wb['mailbox_soft_delete_info_txt'] = 'by default cleaned up after 7 days.';
diff --git a/interface/web/admin/lib/lang/ja_server_config.lng b/interface/web/admin/lib/lang/ja_server_config.lng
index bf6d47d59ea436c32ca639a47271893cbd9883a8..66d505562bf7ce665e7fcdd99a25778b2bf2a1f3 100644
--- a/interface/web/admin/lib/lang/ja_server_config.lng
+++ b/interface/web/admin/lib/lang/ja_server_config.lng
@@ -342,3 +342,5 @@ $wb['tooltip_jailkit_hardlinks_txt'] = 'Using hardlinks is insecure, but saves d
 $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.';
diff --git a/interface/web/admin/lib/lang/nl_server_config.lng b/interface/web/admin/lib/lang/nl_server_config.lng
index c89c345e77a4c3ded490cb8edae592673b10eb5a..8ea60a21a8149f93d439e81e914ac1d55a5b56cb 100644
--- a/interface/web/admin/lib/lang/nl_server_config.lng
+++ b/interface/web/admin/lib/lang/nl_server_config.lng
@@ -342,3 +342,5 @@ $wb['tooltip_jailkit_hardlinks_txt'] = 'Using hardlinks is insecure, but saves d
 $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.';
diff --git a/interface/web/admin/lib/lang/pl_server_config.lng b/interface/web/admin/lib/lang/pl_server_config.lng
index 93ded596ea1125d73b831d0148be9112a23a5b83..c186f5d2a60f4651593689a5743ade0a44aabe45 100644
--- a/interface/web/admin/lib/lang/pl_server_config.lng
+++ b/interface/web/admin/lib/lang/pl_server_config.lng
@@ -342,3 +342,5 @@ $wb['tooltip_jailkit_hardlinks_txt'] = 'Using hardlinks is insecure, but saves d
 $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.';
diff --git a/interface/web/admin/lib/lang/pt_server_config.lng b/interface/web/admin/lib/lang/pt_server_config.lng
index 95faebb41e4b32cc42a419d140d615d4fc2dccef..2e398500dbc950c85d9809fb52d88d84edacdce8 100644
--- a/interface/web/admin/lib/lang/pt_server_config.lng
+++ b/interface/web/admin/lib/lang/pt_server_config.lng
@@ -342,3 +342,5 @@ $wb['tooltip_jailkit_hardlinks_txt'] = 'Using hardlinks is insecure, but saves d
 $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.';
diff --git a/interface/web/admin/lib/lang/ro_server_config.lng b/interface/web/admin/lib/lang/ro_server_config.lng
index bb474f5930ebd10d2833f11f6537a52e681fb90a..2756ae7acda0737e5cd50482bfdef5884611fdca 100644
--- a/interface/web/admin/lib/lang/ro_server_config.lng
+++ b/interface/web/admin/lib/lang/ro_server_config.lng
@@ -342,3 +342,5 @@ $wb['tooltip_jailkit_hardlinks_txt'] = 'Using hardlinks is insecure, but saves d
 $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.';
diff --git a/interface/web/admin/lib/lang/ru_server_config.lng b/interface/web/admin/lib/lang/ru_server_config.lng
index 1cd7c64cc448c718e4beabd5824285660b678e79..2fbf9cf7d6e416f68ca60d6759ac47f94c242a3a 100644
--- a/interface/web/admin/lib/lang/ru_server_config.lng
+++ b/interface/web/admin/lib/lang/ru_server_config.lng
@@ -342,3 +342,5 @@ $wb['tooltip_jailkit_hardlinks_txt'] = 'Using hardlinks is insecure, but saves d
 $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.';
diff --git a/interface/web/admin/lib/lang/se_server_config.lng b/interface/web/admin/lib/lang/se_server_config.lng
index da6d90d1ecf60d951fc9f962468e16fb6e65da8b..e21017769cbec9fca8e56a5db4e53da3f50cb0ff 100644
--- a/interface/web/admin/lib/lang/se_server_config.lng
+++ b/interface/web/admin/lib/lang/se_server_config.lng
@@ -342,3 +342,5 @@ $wb['tooltip_jailkit_hardlinks_txt'] = 'Using hardlinks is insecure, but saves d
 $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.';
diff --git a/interface/web/admin/lib/lang/sk_server_config.lng b/interface/web/admin/lib/lang/sk_server_config.lng
index 37a3d597fb2dacbfddd9c9509214f629a79a3a40..9ec5367be5a296f294d8b227c5ec503519fdcb67 100644
--- a/interface/web/admin/lib/lang/sk_server_config.lng
+++ b/interface/web/admin/lib/lang/sk_server_config.lng
@@ -342,3 +342,5 @@ $wb['tooltip_jailkit_hardlinks_txt'] = 'Using hardlinks is insecure, but saves d
 $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.';
diff --git a/interface/web/admin/lib/lang/tr_server_config.lng b/interface/web/admin/lib/lang/tr_server_config.lng
index 9b8bfb383f6bce44b0df8565bcc6e59b93883e5d..29ccbe6129a1ed1d5bf8af6bb942a4c87031865e 100644
--- a/interface/web/admin/lib/lang/tr_server_config.lng
+++ b/interface/web/admin/lib/lang/tr_server_config.lng
@@ -339,3 +339,5 @@ $wb['tooltip_jailkit_hardlinks_txt'] = 'Using hardlinks is insecure, but saves d
 $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.';
diff --git a/interface/web/admin/templates/server_config_mail_edit.htm b/interface/web/admin/templates/server_config_mail_edit.htm
index 1876b78f4bbbbc3cd67e8be47c1860a7d55040d9..84683191c804141cc6024a207dd92d3e1cb47af4 100644
--- a/interface/web/admin/templates/server_config_mail_edit.htm
+++ b/interface/web/admin/templates/server_config_mail_edit.htm
@@ -140,6 +140,12 @@
                     <a data-toggle="tooltip" title="{tmpl_var name='tooltip_stress_adaptive_txt'}">{tmpl_var name="stress_adaptive"}</a>
                 </div>
             </div>
+            <div class="form-group">
+                <label class="col-sm-3 control-label">{tmpl_var name='mailbox_soft_delete_txt'}</label>
+                <div class="col-sm-9">
+                    {tmpl_var name='mailbox_soft_delete'}&nbsp;{tmpl_var name='mailbox_soft_delete_info_txt'}
+                </div>
+            </div>
             <div class="form-group">
                 <label class="col-sm-3 control-label">{tmpl_var name='mailbox_quota_stats_txt'}</label>
                 <div class="col-sm-9">
diff --git a/server/plugins-available/mail_plugin.inc.php b/server/plugins-available/mail_plugin.inc.php
index 2baf07ec7dd07ad69f7203b77924bb166cf1f8f9..53836a1392f50d4dda9268f83f464fa6ec78d149 100644
--- a/server/plugins-available/mail_plugin.inc.php
+++ b/server/plugins-available/mail_plugin.inc.php
@@ -429,8 +429,19 @@ class mail_plugin {
 		$maildir_path_deleted = false;
 		$old_maildir_path = $data['old']['maildir'];
 		if($old_maildir_path != $mail_config['homedir_path'] && strlen($old_maildir_path) > strlen($mail_config['homedir_path']) && !stristr($old_maildir_path, '//') && !stristr($old_maildir_path, '..') && !stristr($old_maildir_path, '*') && strlen($old_maildir_path) >= 10) {
-			$app->system->exec_safe('rm -rf ?', $old_maildir_path);
-			$app->log('Deleted the Maildir: '.$data['old']['maildir'], LOGLEVEL_DEBUG);
+			if ($mail_config['mailbox_soft_delete'] == 'y') {
+				// Move it, adding a date based suffix. A cronjob should purge or archive.
+				$thrash_maildir_path = $old_maildir_path . '-deleted-' . date("YmdHis");
+				$app->system->exec_safe('mv ? ?', $old_maildir_path, $thrash_maildir_path);
+
+				// Update the dir's timestamp to make filtering on age easier in any cleanup cronjob.
+				$app->system->exec_safe('touch ?', $thrash_maildir_path);
+
+				$app->log('Renamed the Maildir: ' . $data['old']['maildir'] . ' to ' . $thrash_maildir_path, LOGLEVEL_DEBUG);
+			} else  {
+				$app->system->exec_safe('rm -rf ?', $old_maildir_path);
+				$app->log('Deleted the Maildir: '.$data['old']['maildir'], LOGLEVEL_DEBUG);
+			}
 			$maildir_path_deleted = true;
 		} else {
 			$app->log('Possible security violation when deleting the maildir: '.$data['old']['maildir'], LOGLEVEL_ERROR);
@@ -473,8 +484,19 @@ class mail_plugin {
 		//* Delete maildomain path
 		$old_maildomain_path = $mail_config['homedir_path'].'/'.$data['old']['domain'];
 		if($old_maildomain_path != $mail_config['homedir_path'] && !stristr($old_maildomain_path, '//') && !stristr($old_maildomain_path, '..') && !stristr($old_maildomain_path, '*') && !stristr($old_maildomain_path, '&') && strlen($old_maildomain_path) >= 10  && !empty($data['old']['domain'])) {
-			$app->system->exec_safe('rm -rf ?', $old_maildomain_path);
-			$app->log('Deleted the mail domain directory: '.$old_maildomain_path, LOGLEVEL_DEBUG);
+			if ($mail_config['mailbox_soft_delete'] == 'y') {
+				// Move it, adding a date based suffix. A cronjob should purge or archive.
+				$thrash_maildomain_path = $old_maildomain_path . '-deleted-' . date("YmdHis");
+				$app->system->exec_safe('mv ? ?', $old_maildomain_path, $thrash_maildomain_path);
+
+				// Update the dir's timestamp to make filtering on age easier in any cleanup cronjob.
+				$app->system->exec_safe('touch ?', $thrash_maildomain_path);
+
+				$app->log('Renamed the mail domain directory: ' . $old_maildomain_path . ' to ' . $thrash_maildomain_path, LOGLEVEL_DEBUG);
+			} else  {
+				$app->system->exec_safe('rm -rf ?', $old_maildomain_path);
+				$app->log('Deleted the mail domain directory: '.$old_maildomain_path, LOGLEVEL_DEBUG);
+			}
 			$maildomain_path_deleted = true;
 		} else {
 			$app->log('Possible security violation when deleting the mail domain directory: '.$old_maildomain_path, LOGLEVEL_ERROR);
diff --git a/server/scripts/handle_mailbox_soft_deleted.sh b/server/scripts/handle_mailbox_soft_deleted.sh
new file mode 100644
index 0000000000000000000000000000000000000000..7c7f280839d31233adabfd39832ed089e5fc66d3
--- /dev/null
+++ b/server/scripts/handle_mailbox_soft_deleted.sh
@@ -0,0 +1,49 @@
+#!/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