diff --git a/install/tpl/server.ini.master b/install/tpl/server.ini.master
index 8799e1f34c7efec3ec6e375659ea31b1ef31f833..a4544171d58757bcb1959a39ad56ea774401c0e9 100644
--- a/install/tpl/server.ini.master
+++ b/install/tpl/server.ini.master
@@ -60,6 +60,7 @@ mailbox_quota_stats=y
 realtime_blackhole_list=zen.spamhaus.org
 overquota_notify_threshold=90
 overquota_notify_admin=y
+overquota_notify_reseller=y
 overquota_notify_client=y
 overquota_notify_freq=7
 overquota_notify_onok=n
@@ -103,6 +104,7 @@ enable_sni=y
 skip_le_check=n
 enable_ip_wildcard=y
 overtraffic_notify_admin=y
+overtraffic_notify_reseller=y
 overtraffic_notify_client=y
 nginx_cgi_socket=/var/run/fcgiwrap.socket
 php_fpm_init_script=php5-fpm
@@ -121,10 +123,12 @@ php_ini_check_minutes=1
 overtraffic_disable_web=y
 overquota_notify_threshold=90
 overquota_notify_admin=y
+overquota_notify_reseller=y
 overquota_notify_client=y
 overquota_notify_freq=7
 overquota_db_notify_threshold=90
 overquota_db_notify_admin=y
+overquota_db_notify_reseller=y
 overquota_db_notify_client=y
 overquota_notify_onok=n
 logging=yes
diff --git a/interface/lib/lang/ar.lng b/interface/lib/lang/ar.lng
index c2bc19a6b9f483c11d8fe2e5bcc48ac2af5ef109..4aa87ee5aa3b5095ab8f4b233811930e515e6921 100644
--- a/interface/lib/lang/ar.lng
+++ b/interface/lib/lang/ar.lng
@@ -173,3 +173,5 @@ $wb['unlimited_txt'] = 'Unlimited';
 $wb['server_id_0_error_txt'] = 'Please select a valid Server. Server ID must be > 0.';
 $wb['datalog_changes_close_txt'] = 'Close';
 $wb['non_admin_error'] = 'Requires administrator level permissions';
+$wb['copy_to_clipboard_txt'] = 'Copy to clipboard';
+?>
diff --git a/interface/lib/lang/bg.lng b/interface/lib/lang/bg.lng
index e0a0bfcdaba846f50de030d2bc1c07d7849eb154..67c2b67b6f8cab74042d96a0cab6d4310679c7e3 100644
--- a/interface/lib/lang/bg.lng
+++ b/interface/lib/lang/bg.lng
@@ -173,3 +173,5 @@ $wb['unlimited_txt'] = 'Неограничен';
 $wb['server_id_0_error_txt'] = 'Please select a valid Server. Server ID must be > 0.';
 $wb['datalog_changes_close_txt'] = 'Close';
 $wb['non_admin_error'] = 'Requires administrator level permissions';
+$wb['copy_to_clipboard_txt'] = 'Copy to clipboard';
+?>
diff --git a/interface/lib/lang/br.lng b/interface/lib/lang/br.lng
index 7e78ddaf364953e5d0f567aa6bf63384c8ef513b..02f4697deeb4a34dc94a71989ba7723a44355ce2 100644
--- a/interface/lib/lang/br.lng
+++ b/interface/lib/lang/br.lng
@@ -173,3 +173,5 @@ $wb['unlimited_txt'] = 'Ilimitado';
 $wb['server_id_0_error_txt'] = 'Por favor, selecione um servidor válido. O ID do servidor deve ser > 0.';
 $wb['datalog_changes_close_txt'] = 'Fechar';
 $wb['non_admin_error'] = 'Requires administrator level permissions';
+$wb['copy_to_clipboard_txt'] = 'Copy to clipboard';
+?>
diff --git a/interface/lib/lang/ca.lng b/interface/lib/lang/ca.lng
index 308aba545bfb2fffbfdb63b2076988f51e91f7fa..0aa69997e543e3fe4f1c576310343bb6fdf5028a 100644
--- a/interface/lib/lang/ca.lng
+++ b/interface/lib/lang/ca.lng
@@ -173,3 +173,5 @@ $wb['unlimited_txt'] = 'Illimité';
 $wb['server_id_0_error_txt'] = 'Please select a valid Server. Server ID must be > 0.';
 $wb['datalog_changes_close_txt'] = 'Close';
 $wb['non_admin_error'] = 'Requires administrator level permissions';
+$wb['copy_to_clipboard_txt'] = 'Copy to clipboard';
+?>
diff --git a/interface/lib/lang/cz.lng b/interface/lib/lang/cz.lng
index 84ce72a4c0bc98a423932e90904306ee9256fcf4..1eccd3c8e58331dacddc1d05852f694a911f2a6b 100644
--- a/interface/lib/lang/cz.lng
+++ b/interface/lib/lang/cz.lng
@@ -173,3 +173,5 @@ $wb['unlimited_txt'] = 'Neomezený';
 $wb['server_id_0_error_txt'] = 'Please select a valid Server. Server ID must be > 0.';
 $wb['datalog_changes_close_txt'] = 'Close';
 $wb['non_admin_error'] = 'Requires administrator level permissions';
+$wb['copy_to_clipboard_txt'] = 'Copy to clipboard';
+?>
diff --git a/interface/lib/lang/de.lng b/interface/lib/lang/de.lng
index 38e9c2b40c04df1deaea832f89681ea96ed1b5d2..d6cef498d367270e0b33722c9ebd20a401cf9ee2 100644
--- a/interface/lib/lang/de.lng
+++ b/interface/lib/lang/de.lng
@@ -173,3 +173,5 @@ $wb['unlimited_txt'] = 'unlimitiert';
 $wb['server_id_0_error_txt'] = 'Bitte Server auswählen. Server ID muss > als 0 sein.';
 $wb['datalog_changes_close_txt'] = 'Close';
 $wb['non_admin_error'] = 'Requires administrator level permissions';
+$wb['copy_to_clipboard_txt'] = 'Copy to clipboard';
+?>
diff --git a/interface/lib/lang/dk.lng b/interface/lib/lang/dk.lng
index de52b0e704f00f5c6b9d1808ff09ad6845203aa7..85cee5865942261351b84e04021edd9674a25ac2 100644
--- a/interface/lib/lang/dk.lng
+++ b/interface/lib/lang/dk.lng
@@ -173,3 +173,5 @@ $wb['unlimited_txt'] = 'Ubegrænset';
 $wb['server_id_0_error_txt'] = 'Please select a valid Server. Server ID must be > 0.';
 $wb['datalog_changes_close_txt'] = 'Close';
 $wb['non_admin_error'] = 'Requires administrator level permissions';
+$wb['copy_to_clipboard_txt'] = 'Copy to clipboard';
+?>
diff --git a/interface/lib/lang/el.lng b/interface/lib/lang/el.lng
index 42d991401d696eeef8a1b9e0ed9720438ac70884..d5b980722a43d7c111428445a15eabb9ccea7154 100644
--- a/interface/lib/lang/el.lng
+++ b/interface/lib/lang/el.lng
@@ -173,3 +173,5 @@ $wb['unlimited_txt'] = 'Απεριόριστα';
 $wb['server_id_0_error_txt'] = 'Please select a valid Server. Server ID must be > 0.';
 $wb['datalog_changes_close_txt'] = 'Close';
 $wb['non_admin_error'] = 'Requires administrator level permissions';
+$wb['copy_to_clipboard_txt'] = 'Copy to clipboard';
+?>
diff --git a/interface/lib/lang/en.lng b/interface/lib/lang/en.lng
index 57c8d1f79f88ac69ced6a397e5bb5dd8fe7d5806..6024cc69a74e74c977e80715f9e1e787c63e057b 100644
--- a/interface/lib/lang/en.lng
+++ b/interface/lib/lang/en.lng
@@ -174,3 +174,5 @@ $wb['unlimited_txt'] = 'Unlimited';
 $wb['server_id_0_error_txt'] = 'Please select a valid Server. Server ID must be > 0.';
 $wb['datalog_changes_close_txt'] = 'Close';
 $wb['non_admin_error'] = 'Requires administrator level permissions';
+$wb['copy_to_clipboard_txt'] = 'Copy to clipboard';
+?>
diff --git a/interface/lib/lang/es.lng b/interface/lib/lang/es.lng
index 2d120a2b97603a0d962508aa425e9158272c4baf..e3ba1d41e067e1246daf7105810cc817328a27e9 100644
--- a/interface/lib/lang/es.lng
+++ b/interface/lib/lang/es.lng
@@ -173,3 +173,5 @@ $wb['unlimited_txt'] = 'Ilimitado';
 $wb['server_id_0_error_txt'] = 'Please select a valid Server. Server ID must be > 0.';
 $wb['datalog_changes_close_txt'] = 'Cerrar';
 $wb['non_admin_error'] = 'Requires administrator level permissions';
+$wb['copy_to_clipboard_txt'] = 'Copy to clipboard';
+?>
diff --git a/interface/lib/lang/fi.lng b/interface/lib/lang/fi.lng
index 7974914e0e9eab89775f76fdbad6febbbaa166f9..87f2dc24edd263eb58ecd961aa5ed5b4c2896d02 100644
--- a/interface/lib/lang/fi.lng
+++ b/interface/lib/lang/fi.lng
@@ -173,3 +173,5 @@ $wb['unlimited_txt'] = 'Unlimited';
 $wb['server_id_0_error_txt'] = 'Please select a valid Server. Server ID must be > 0.';
 $wb['datalog_changes_close_txt'] = 'Close';
 $wb['non_admin_error'] = 'Requires administrator level permissions';
+$wb['copy_to_clipboard_txt'] = 'Copy to clipboard';
+?>
diff --git a/interface/lib/lang/fr.lng b/interface/lib/lang/fr.lng
index b4bb837e7df140a132009910c64221a5ab227d3c..7f8413d11c1a2b5906deff3033755a3c594dd932 100644
--- a/interface/lib/lang/fr.lng
+++ b/interface/lib/lang/fr.lng
@@ -173,3 +173,5 @@ $wb['unlimited_txt'] = 'Illimité';
 $wb['server_id_0_error_txt'] = 'Please select a valid Server. Server ID must be > 0.';
 $wb['datalog_changes_close_txt'] = 'Close';
 $wb['non_admin_error'] = 'Requires administrator level permissions';
+$wb['copy_to_clipboard_txt'] = 'Copy to clipboard';
+?>
diff --git a/interface/lib/lang/hr.lng b/interface/lib/lang/hr.lng
index bef42f1814ce5d93bc603c69d31b3cb630b7faeb..167073f837b63bf9d3058507ab26d7f22549ff7c 100644
--- a/interface/lib/lang/hr.lng
+++ b/interface/lib/lang/hr.lng
@@ -173,3 +173,5 @@ $wb['unlimited_txt'] = 'neograničeno';
 $wb['server_id_0_error_txt'] = 'Please select a valid Server. Server ID must be > 0.';
 $wb['datalog_changes_close_txt'] = 'Close';
 $wb['non_admin_error'] = 'Requires administrator level permissions';
+$wb['copy_to_clipboard_txt'] = 'Copy to clipboard';
+?>
diff --git a/interface/lib/lang/hu.lng b/interface/lib/lang/hu.lng
index e3913462fe0adc3a0152e4c39425d62bfb634dbf..a07c6810ce77c10add4de441f6008e2eee732b0c 100644
--- a/interface/lib/lang/hu.lng
+++ b/interface/lib/lang/hu.lng
@@ -173,3 +173,5 @@ $wb['unlimited_txt'] = 'Korlátlan';
 $wb['server_id_0_error_txt'] = 'Please select a valid Server. Server ID must be > 0.';
 $wb['datalog_changes_close_txt'] = 'Close';
 $wb['non_admin_error'] = 'Requires administrator level permissions';
+$wb['copy_to_clipboard_txt'] = 'Copy to clipboard';
+?>
diff --git a/interface/lib/lang/id.lng b/interface/lib/lang/id.lng
index aea01a061486780e671c2d12e03f1e95cc18b866..51e1fd6aef00388230029ca8f704d1bb1361fc30 100644
--- a/interface/lib/lang/id.lng
+++ b/interface/lib/lang/id.lng
@@ -173,3 +173,5 @@ $wb['unlimited_txt'] = 'Tak terbatas';
 $wb['server_id_0_error_txt'] = 'Please select a valid Server. Server ID must be > 0.';
 $wb['datalog_changes_close_txt'] = 'Close';
 $wb['non_admin_error'] = 'Requires administrator level permissions';
+$wb['copy_to_clipboard_txt'] = 'Copy to clipboard';
+?>
diff --git a/interface/lib/lang/it.lng b/interface/lib/lang/it.lng
index ff08d6f6337a6fdf84ed4b6befc103344e12b1e1..a56224e6d538b545f1758be32789cf37095a348c 100644
--- a/interface/lib/lang/it.lng
+++ b/interface/lib/lang/it.lng
@@ -173,3 +173,5 @@ $wb['unlimited_txt'] = 'illimitati';
 $wb['server_id_0_error_txt'] = 'Please select a valid Server. Server ID must be > 0.';
 $wb['datalog_changes_close_txt'] = 'Chiudi';
 $wb['non_admin_error'] = 'Requires administrator level permissions';
+$wb['copy_to_clipboard_txt'] = 'Copy to clipboard';
+?>
diff --git a/interface/lib/lang/ja.lng b/interface/lib/lang/ja.lng
index 7235de393e3c7d4a7878eeb13554b791f048084f..00db30317075d490d0b6d8e1b502e217f8260990 100644
--- a/interface/lib/lang/ja.lng
+++ b/interface/lib/lang/ja.lng
@@ -173,3 +173,5 @@ $wb['unlimited_txt'] = 'Unlimited';
 $wb['server_id_0_error_txt'] = 'Please select a valid Server. Server ID must be > 0.';
 $wb['datalog_changes_close_txt'] = 'Close';
 $wb['non_admin_error'] = 'Requires administrator level permissions';
+$wb['copy_to_clipboard_txt'] = 'Copy to clipboard';
+?>
diff --git a/interface/lib/lang/nl.lng b/interface/lib/lang/nl.lng
index 54e7045e612ff200bad7be702f0ddd74141f3e29..582c5ffe53b222ce8bd434d025bef88826de011f 100644
--- a/interface/lib/lang/nl.lng
+++ b/interface/lib/lang/nl.lng
@@ -173,3 +173,5 @@ $wb['unlimited_txt'] = 'Ongelimiteerd';
 $wb['server_id_0_error_txt'] = 'Please select a valid Server. Server ID must be > 0.';
 $wb['datalog_changes_close_txt'] = 'Sluiten';
 $wb['non_admin_error'] = 'Requires administrator level permissions';
+$wb['copy_to_clipboard_txt'] = 'Kopieer naar klembord';
+?>
diff --git a/interface/lib/lang/pl.lng b/interface/lib/lang/pl.lng
index ccd3347324793d50ead081987c6f3d1c49ee55ba..d22b0d485029a8c681b298d0865b883bd5e2c57a 100644
--- a/interface/lib/lang/pl.lng
+++ b/interface/lib/lang/pl.lng
@@ -173,3 +173,5 @@ $wb['unlimited_txt'] = 'nielimitowane';
 $wb['server_id_0_error_txt'] = 'Please select a valid Server. Server ID must be > 0.';
 $wb['datalog_changes_close_txt'] = 'Close';
 $wb['non_admin_error'] = 'Requires administrator level permissions';
+$wb['copy_to_clipboard_txt'] = 'Copy to clipboard';
+?>
diff --git a/interface/lib/lang/pt.lng b/interface/lib/lang/pt.lng
index e2dc2f72acba3a877f0463fff46f38b4931641c1..23b1cd2079584cfbe6798026b6e59c02535b15cb 100644
--- a/interface/lib/lang/pt.lng
+++ b/interface/lib/lang/pt.lng
@@ -173,3 +173,5 @@ $wb['unlimited_txt'] = 'Unlimited';
 $wb['server_id_0_error_txt'] = 'Please select a valid Server. Server ID must be > 0.';
 $wb['datalog_changes_close_txt'] = 'Close';
 $wb['non_admin_error'] = 'Requires administrator level permissions';
+$wb['copy_to_clipboard_txt'] = 'Copy to clipboard';
+?>
diff --git a/interface/lib/lang/ro.lng b/interface/lib/lang/ro.lng
index 6a9f596a0b74fd64d85099ce0f8b3ed941421407..b4da89bc12e4b077a1e871ac3c1257b3dbd0a87d 100644
--- a/interface/lib/lang/ro.lng
+++ b/interface/lib/lang/ro.lng
@@ -173,3 +173,5 @@ $wb['unlimited_txt'] = 'Unlimited';
 $wb['server_id_0_error_txt'] = 'Please select a valid Server. Server ID must be > 0.';
 $wb['datalog_changes_close_txt'] = 'Close';
 $wb['non_admin_error'] = 'Requires administrator level permissions';
+$wb['copy_to_clipboard_txt'] = 'Copy to clipboard';
+?>
diff --git a/interface/lib/lang/ru.lng b/interface/lib/lang/ru.lng
index dca0c7a53e4cb9fc8cfaf82529d6fb6f9358efe8..cfd805010b094c43689cfdf9f79e42ef72c9c1f3 100644
--- a/interface/lib/lang/ru.lng
+++ b/interface/lib/lang/ru.lng
@@ -173,3 +173,5 @@ $wb['unlimited_txt'] = 'Безлимитный';
 $wb['server_id_0_error_txt'] = 'Please select a valid Server. Server ID must be > 0.';
 $wb['datalog_changes_close_txt'] = 'Close';
 $wb['non_admin_error'] = 'Requires administrator level permissions';
+$wb['copy_to_clipboard_txt'] = 'Copy to clipboard';
+?>
diff --git a/interface/lib/lang/se.lng b/interface/lib/lang/se.lng
index 2d3c38fd3892654599a4b616b23755062d4d70b0..03d818ec560ddd2eb9c2d95c00740a28466de0cb 100644
--- a/interface/lib/lang/se.lng
+++ b/interface/lib/lang/se.lng
@@ -173,3 +173,5 @@ $wb['unlimited_txt'] = 'Obegränsat';
 $wb['server_id_0_error_txt'] = 'Please select a valid Server. Server ID must be > 0.';
 $wb['datalog_changes_close_txt'] = 'Close';
 $wb['non_admin_error'] = 'Requires administrator level permissions';
+$wb['copy_to_clipboard_txt'] = 'Copy to clipboard';
+?>
diff --git a/interface/lib/lang/sk.lng b/interface/lib/lang/sk.lng
index d8e06d1ab3a1c024260ee1fc3fed89f00f35d8e8..dfad74552bff2a6ae80935dccd92be7fcc27624d 100644
--- a/interface/lib/lang/sk.lng
+++ b/interface/lib/lang/sk.lng
@@ -173,3 +173,5 @@ $wb['unlimited_txt'] = 'Unlimited';
 $wb['server_id_0_error_txt'] = 'Please select a valid Server. Server ID must be > 0.';
 $wb['datalog_changes_close_txt'] = 'Close';
 $wb['non_admin_error'] = 'Requires administrator level permissions';
+$wb['copy_to_clipboard_txt'] = 'Copy to clipboard';
+?>
diff --git a/interface/lib/lang/tr.lng b/interface/lib/lang/tr.lng
index ec5f1bfd930ecd2d3de74f48b3ddcb48f3440511..5b7afc3afa7b5db68f82763be2f092ed1178afda 100644
--- a/interface/lib/lang/tr.lng
+++ b/interface/lib/lang/tr.lng
@@ -174,3 +174,5 @@ $wb['unlimited_txt'] = 'Sınırsız';
 $wb['server_id_0_error_txt'] = 'Please select a valid Server. Server ID must be > 0.';
 $wb['datalog_changes_close_txt'] = 'Close';
 $wb['non_admin_error'] = 'Requires administrator level permissions';
+$wb['copy_to_clipboard_txt'] = 'Copy to clipboard';
+?>
diff --git a/interface/web/admin/form/server_config.tform.php b/interface/web/admin/form/server_config.tform.php
index 185fa892c86a62f9d531a4e7d983ace5ff068185..eb291d02ba142bfd4340e43f41099e8ac309cc73 100644
--- a/interface/web/admin/form/server_config.tform.php
+++ b/interface/web/admin/form/server_config.tform.php
@@ -758,6 +758,12 @@ $form["tabs"]['mail'] = array(
 			'default' => 'y',
 			'value' => array(0 => 'n', 1 => 'y')
 		),
+		'overquota_notify_reseller' => array(
+			'datatype' => 'VARCHAR',
+			'formtype' => 'CHECKBOX',
+			'default' => 'y',
+			'value' => array(0 => 'n', 1 => 'y')
+		),
 		'overquota_notify_client' => array(
 			'datatype' => 'VARCHAR',
 			'formtype' => 'CHECKBOX',
@@ -1082,6 +1088,12 @@ $form["tabs"]['web'] = array(
 			'default' => 'y',
 			'value' => array(0 => 'n', 1 => 'y')
 		),
+		'overtraffic_notify_reseller' => array(
+			'datatype' => 'VARCHAR',
+			'formtype' => 'CHECKBOX',
+			'default' => 'y',
+			'value' => array(0 => 'n', 1 => 'y')
+		),
 		'overtraffic_notify_client' => array(
 			'datatype' => 'VARCHAR',
 			'formtype' => 'CHECKBOX',
@@ -1112,6 +1124,12 @@ $form["tabs"]['web'] = array(
 			'default' => 'y',
 			'value' => array(0 => 'n', 1 => 'y')
 		),
+		'overquota_notify_reseller' => array(
+			'datatype' => 'VARCHAR',
+			'formtype' => 'CHECKBOX',
+			'default' => 'y',
+			'value' => array(0 => 'n', 1 => 'y')
+		),
 		'overquota_notify_client' => array(
 			'datatype' => 'VARCHAR',
 			'formtype' => 'CHECKBOX',
@@ -1136,6 +1154,12 @@ $form["tabs"]['web'] = array(
 			'default' => 'y',
 			'value' => array(0 => 'n', 1 => 'y')
 		),
+		'overquota_db_notify_reseller' => array(
+			'datatype' => 'VARCHAR',
+			'formtype' => 'CHECKBOX',
+			'default' => 'y',
+			'value' => array(0 => 'n', 1 => 'y')
+		),
 		'overquota_db_notify_client' => 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 58e7833fd6ef457ecb796e7099df3dc8db778497..56331a97da8026204d7dcea59a6a7c8457b1af3e 100644
--- a/interface/web/admin/lib/lang/ar_server_config.lng
+++ b/interface/web/admin/lib/lang/ar_server_config.lng
@@ -192,12 +192,14 @@ $wb['mailbox_quota_stats_txt'] = 'Mailbox quota statistics';
 $wb['enable_ip_wildcard_txt'] = 'Enable IP wildcard (*)';
 $wb['web_folder_protection_txt'] = 'Make web folders immutable (extended attributes)';
 $wb['overtraffic_notify_admin_txt'] = 'Send overtraffic notification to admin';
+$wb['overtraffic_notify_reseller_txt'] = 'Send overtraffic notification to reseller';
 $wb['overtraffic_notify_client_txt'] = 'Send overtraffic notification to client';
 $wb['overtraffic_disable_web_txt'] = 'Disable websites that exceed traffic limit';
 $wb['rbl_error_regex'] = 'Please specify valid RBL hostnames.';
 $wb['overquota_notify_threshold_txt'] = 'Quota warning usage level';
 $wb['overquota_notify_threshold_error'] = 'Quota warning usage level must be between 0-100%';
 $wb['overquota_notify_admin_txt'] = 'Send quota warnings to admin';
+$wb['overquota_notify_reseller_txt'] = 'Send quota warnings to reseller';
 $wb['overquota_notify_client_txt'] = 'Send quota warnings to client';
 $wb['overquota_notify_onok_txt'] = 'Send quota ok message to client';
 $wb['overquota_notify_freq_txt'] = 'Send quota warning each X days';
@@ -279,6 +281,7 @@ $wb['do_not_try_rescue_mongodb_txt'] = 'Disable MongoDB monitoring';
 $wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounted';
 $wb['overquota_db_notify_threshold_txt'] = 'DB quota warning usage level';
 $wb['overquota_db_notify_admin_txt'] = 'Send DB quota warnings to admin';
+$wb['overquota_db_notify_reseller_txt'] = 'Send DB quota warnings to reseller';
 $wb['overquota_db_notify_client_txt'] = 'Send DB quota warnings to client';
 $wb['php_handler_txt'] = 'Default PHP Handler';
 $wb['php_fpm_default_chroot_txt'] = 'Default chrooted PHP-FPM';
diff --git a/interface/web/admin/lib/lang/bg_server_config.lng b/interface/web/admin/lib/lang/bg_server_config.lng
index 0d87a4daa0fbd6d6416e187a5501422d89d54035..8a741a641b2e710bfb2fb3544758f7c29dca9cfc 100644
--- a/interface/web/admin/lib/lang/bg_server_config.lng
+++ b/interface/web/admin/lib/lang/bg_server_config.lng
@@ -192,12 +192,14 @@ $wb['web_folder_protection_txt'] = 'Make web folders immutable (extended attribu
 $wb['website_autoalias_txt'] = 'Website auto alias';
 $wb['website_autoalias_note_txt'] = 'Placeholders:';
 $wb['overtraffic_notify_admin_txt'] = 'Send overtraffic notification to admin';
+$wb['overtraffic_notify_reseller_txt'] = 'Send overtraffic notification to reseller';
 $wb['overtraffic_notify_client_txt'] = 'Send overtraffic notification to client';
 $wb['overtraffic_disable_web_txt'] = 'Disable websites that exceed traffic limit';
 $wb['rbl_error_regex'] = 'Please specify valid RBL hostnames.';
 $wb['overquota_notify_threshold_txt'] = 'Quota warning usage level';
 $wb['overquota_notify_threshold_error'] = 'Quota warning usage level must be between 0-100%';
 $wb['overquota_notify_admin_txt'] = 'Send quota warnings to admin';
+$wb['overquota_notify_reseller_txt'] = 'Send quota warnings to reseller';
 $wb['overquota_notify_client_txt'] = 'Send quota warnings to client';
 $wb['overquota_notify_onok_txt'] = 'Send quota ok message to client';
 $wb['overquota_notify_freq_txt'] = 'Send quota warning each X days';
@@ -279,6 +281,7 @@ $wb['do_not_try_rescue_mongodb_txt'] = 'Disable MongoDB monitoring';
 $wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounted';
 $wb['overquota_db_notify_threshold_txt'] = 'DB quota warning usage level';
 $wb['overquota_db_notify_admin_txt'] = 'Send DB quota warnings to admin';
+$wb['overquota_db_notify_reseller_txt'] = 'Send DB quota warnings to reseller';
 $wb['overquota_db_notify_client_txt'] = 'Send DB quota warnings to client';
 $wb['php_handler_txt'] = 'Default PHP Handler';
 $wb['php_fpm_default_chroot_txt'] = 'Default chrooted PHP-FPM';
diff --git a/interface/web/admin/lib/lang/br_server_config.lng b/interface/web/admin/lib/lang/br_server_config.lng
index e749dcc0235250e07f77b135dc19302b7cdd8554..af3eb367ee7eb3c0a373226af5c6eb503dc67ae0 100644
--- a/interface/web/admin/lib/lang/br_server_config.lng
+++ b/interface/web/admin/lib/lang/br_server_config.lng
@@ -199,12 +199,14 @@ $wb['mailbox_quota_stats_txt'] = 'Estatísticas das cotas para contas de email';
 $wb['enable_ip_wildcard_txt'] = 'Habilitar curingas IP (*)';
 $wb['web_folder_protection_txt'] = 'Tornar pastas Web imutáveis (atributos estendidos)';
 $wb['overtraffic_notify_admin_txt'] = 'Enviar notificação de tráfego excedido para o administrador';
+$wb['overtraffic_notify_reseller_txt'] = 'Send overtraffic notification to reseller';
 $wb['overtraffic_notify_client_txt'] = 'Enviar notificação de tráfego excedido para o cliente';
 $wb['overtraffic_disable_web_txt'] = 'Disable websites that exceed traffic limit';
 $wb['rbl_error_regex'] = 'Por favor, insira nomes de host válidos para RBLs.';
 $wb['overquota_notify_threshold_txt'] = 'Quota warning usage level';
 $wb['overquota_notify_threshold_error'] = 'Quota warning usage level must be between 0-100%';
 $wb['overquota_notify_admin_txt'] = 'Enviar alerta da cota para o administrador';
+$wb['overquota_notify_reseller_txt'] = 'Send quota warnings to reseller';
 $wb['overquota_notify_client_txt'] = 'Enviar alerta da cota para o cliente';
 $wb['overquota_notify_onok_txt'] = 'Enviar mensagem da cota para o cliente';
 $wb['overquota_notify_freq_txt'] = 'Enviar alerta da cota a cada N dias';
@@ -229,6 +231,7 @@ $wb['backup_dir_mount_cmd_txt'] = 'Comando mount, se o diretório não está mon
 $wb['backup_delete_txt'] = 'Remover backups de domínios/site';
 $wb['overquota_db_notify_threshold_txt'] = 'DB quota warning usage level';
 $wb['overquota_db_notify_admin_txt'] = 'Enviar alerta da cota do Banco de Dados para o administrador';
+$wb['overquota_db_notify_reseller_txt'] = 'Send DB quota warnings to reseller';
 $wb['overquota_db_notify_client_txt'] = 'Enviar alerta da cota do Banco de Dados para o cliente';
 $wb['monitor_system_updates_txt'] = 'Verificar por atualizações do sistema';
 $wb['php_handler_txt'] = 'Manipulador padrão PHP';
diff --git a/interface/web/admin/lib/lang/ca_server_config.lng b/interface/web/admin/lib/lang/ca_server_config.lng
index 50125cf334c1024a86b57e38c3c4adc38b5e39dd..0bc67affe076d7ea99328fd648003d8986bb0ffd 100644
--- a/interface/web/admin/lib/lang/ca_server_config.lng
+++ b/interface/web/admin/lib/lang/ca_server_config.lng
@@ -195,12 +195,14 @@ $wb['mailbox_quota_stats_txt'] = 'Mailbox quota statistics';
 $wb['enable_ip_wildcard_txt'] = 'Enable IP wildcard (*)';
 $wb['web_folder_protection_txt'] = 'Make web folders immutable (extended attributes)';
 $wb['overtraffic_notify_admin_txt'] = 'Send overtraffic notification to admin';
+$wb['overtraffic_notify_reseller_txt'] = 'Send overtraffic notification to reseller';
 $wb['overtraffic_notify_client_txt'] = 'Send overtraffic notification to client';
 $wb['overtraffic_disable_web_txt'] = 'Disable websites that exceed traffic limit';
 $wb['rbl_error_regex'] = 'Please specify valid RBL hostnames.';
 $wb['overquota_notify_threshold_txt'] = 'Quota warning usage level';
 $wb['overquota_notify_threshold_error'] = 'Quota warning usage level must be between 0-100%';
 $wb['overquota_notify_admin_txt'] = 'Send quota warnings to admin';
+$wb['overquota_notify_reseller_txt'] = 'Send quota warnings to reseller';
 $wb['overquota_notify_client_txt'] = 'Send quota warnings to client';
 $wb['overquota_notify_onok_txt'] = 'Send quota ok message to client';
 $wb['overquota_notify_freq_txt'] = 'Send quota warning each X days';
@@ -225,6 +227,7 @@ $wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounte
 $wb['backup_delete_txt'] = 'Delete backups on domain/website delete';
 $wb['overquota_db_notify_threshold_txt'] = 'DB quota warning usage level';
 $wb['overquota_db_notify_admin_txt'] = 'Send DB quota warnings to admin';
+$wb['overquota_db_notify_reseller_txt'] = 'Send DB quota warnings to reseller';
 $wb['overquota_db_notify_client_txt'] = 'Send DB quota warnings to client';
 $wb['monitor_system_updates_txt'] = 'Check for Linux updates';
 $wb['php_handler_txt'] = 'Default PHP Handler';
diff --git a/interface/web/admin/lib/lang/cz_server_config.lng b/interface/web/admin/lib/lang/cz_server_config.lng
index 36d009dbcee76290d6fdd8ada60e252d2a0b0668..bf86abd2ba75e0e69de55509b94b9272b23c35db 100644
--- a/interface/web/admin/lib/lang/cz_server_config.lng
+++ b/interface/web/admin/lib/lang/cz_server_config.lng
@@ -178,12 +178,14 @@ $wb['mailbox_quota_stats_txt'] = 'Statistika kvóty poštovní schránky';
 $wb['enable_ip_wildcard_txt'] = 'Aktivovat IP wildcard (*)';
 $wb['web_folder_protection_txt'] = 'Make web folders immutable (extended attributes)';
 $wb['overtraffic_notify_admin_txt'] = 'Při překročení limitu přenesených dat, poslat oznámení adminovi';
+$wb['overtraffic_notify_reseller_txt'] = 'Send overtraffic notification to reseller';
 $wb['overtraffic_notify_client_txt'] = 'Při překročení limitu přenesených dat, poslat oznámení klientovi';
 $wb['overtraffic_disable_web_txt'] = 'Disable websites that exceed traffic limit';
 $wb['rbl_error_regex'] = 'Please specify valid RBL hostnames.';
 $wb['overquota_notify_threshold_txt'] = 'Quota warning usage level';
 $wb['overquota_notify_threshold_error'] = 'Quota warning usage level must be between 0-100%';
 $wb['overquota_notify_admin_txt'] = 'Poslat varování o překročení nebo vyčerpání kvót adminovi';
+$wb['overquota_notify_reseller_txt'] = 'Send quota warnings to reseller';
 $wb['overquota_notify_client_txt'] = 'Poslat varování o překročení nebo vyčerpání kvót klientovi';
 $wb['overquota_notify_onok_txt'] = 'Poslat zprávu klientovi, že kvóta je již v pořádku';
 $wb['overquota_notify_freq_txt'] = 'Poslat varování o kvótách každý X dní';
@@ -275,6 +277,7 @@ $wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounte
 $wb['backup_delete_txt'] = 'Odstranit zálohy pokud byla smazána doména/webové stránky';
 $wb['overquota_db_notify_threshold_txt'] = 'DB quota warning usage level';
 $wb['overquota_db_notify_admin_txt'] = 'Poslat varování o překročení nebo vyčerpání DB kvót adminovi';
+$wb['overquota_db_notify_reseller_txt'] = 'Send DB quota warnings to reseller';
 $wb['overquota_db_notify_client_txt'] = 'Poslat varování o překročení nebo vyčerpání DB kvót klientovi';
 $wb['php_handler_txt'] = 'Výchozí PHP obslužná rutina';
 $wb['php_fpm_default_chroot_txt'] = 'Default chrooted PHP-FPM';
diff --git a/interface/web/admin/lib/lang/de_server_config.lng b/interface/web/admin/lib/lang/de_server_config.lng
index 2536731433f5154af62ddcf3b4bb1246fd3f476c..2a2cbc5223be4659de121ca2f6760cbd37ffb99d 100644
--- a/interface/web/admin/lib/lang/de_server_config.lng
+++ b/interface/web/admin/lib/lang/de_server_config.lng
@@ -198,12 +198,14 @@ $wb['mailbox_quota_stats_txt'] = 'E-Mailkonto Beschränkung Statistiken';
 $wb['enable_ip_wildcard_txt'] = 'IP Adressen Wildcard (*) aktivieren';
 $wb['web_folder_protection_txt'] = 'Webverzeichnis unveränderlich machen (erweiterte Attribute)';
 $wb['overtraffic_notify_admin_txt'] = 'Überschreiten des Datentransfer Limits an den Administrator senden';
+$wb['overtraffic_notify_reseller_txt'] = 'Send overtraffic notification to reseller';
 $wb['overtraffic_notify_client_txt'] = 'Überschreiten des Datentransfer Limits an den Kunden senden';
 $wb['overtraffic_disable_web_txt'] = 'Disable websites that exceed traffic limit';
 $wb['rbl_error_regex'] = 'Bitte geben Sie gültige RBL-Hostnamen an.';
 $wb['overquota_notify_threshold_txt'] = 'Quota warning usage level';
 $wb['overquota_notify_threshold_error'] = 'Quota warning usage level must be between 0-100%';
 $wb['overquota_notify_admin_txt'] = 'Quota-Warnungen an den Administrator senden';
+$wb['overquota_notify_reseller_txt'] = 'Send quota warnings to reseller';
 $wb['overquota_notify_client_txt'] = 'Quota-Warnungen an den Kunden senden';
 $wb['overquota_notify_onok_txt'] = 'Meldung an den Kunden senden, wenn Belegung wieder ok';
 $wb['overquota_notify_freq_txt'] = 'Quota-Warnung alle X Tage versenden';
@@ -282,6 +284,7 @@ $wb['cron_wget_error_regex'] = 'Invalid cron wget path.';
 $wb['network_filesystem_txt'] = 'Netzwerk-Dateisystem';
 $wb['overquota_db_notify_threshold_txt'] = 'DB quota warning usage level';
 $wb['overquota_db_notify_admin_txt'] = 'Datenbank-Quota-Warnungen an den Administrator senden';
+$wb['overquota_db_notify_reseller_txt'] = 'Send DB quota warnings to reseller';
 $wb['overquota_db_notify_client_txt'] = 'Datenbank-Quota-Warnungen an den Kunden senden';
 $wb['php_ini_check_minutes_txt'] = 'Prüfe php.ini alle X Minuten auf Änderungen';
 $wb['php_ini_check_minutes_error_empty'] = 'Bitte geben Sie einen Wert an, wie oft die php.ini auf Änderungen geprüft werden soll.';
diff --git a/interface/web/admin/lib/lang/dk_server_config.lng b/interface/web/admin/lib/lang/dk_server_config.lng
index e83fa0e09e6811556aa7a3c78093897b28523c1c..722c68889e1d491e08814b328fa2553d824acc69 100644
--- a/interface/web/admin/lib/lang/dk_server_config.lng
+++ b/interface/web/admin/lib/lang/dk_server_config.lng
@@ -181,12 +181,14 @@ $wb['mailbox_quota_stats_txt'] = 'Postboks kvota statistik';
 $wb['enable_ip_wildcard_txt'] = 'Enable IP wildcard (*)';
 $wb['web_folder_protection_txt'] = 'Gør web mapper immume (udvidede attributter)';
 $wb['overtraffic_notify_admin_txt'] = 'Send over-trafik meddelelse til admin';
+$wb['overtraffic_notify_reseller_txt'] = 'Send overtraffic notification to reseller';
 $wb['overtraffic_notify_client_txt'] = 'Send over-trafik meddelelse til kunde';
 $wb['overtraffic_disable_web_txt'] = 'Disable websites that exceed traffic limit';
 $wb['rbl_error_regex'] = 'Angiv gyldige RBL værtsnavne.';
 $wb['overquota_notify_threshold_txt'] = 'Quota warning usage level';
 $wb['overquota_notify_threshold_error'] = 'Quota warning usage level must be between 0-100%';
 $wb['overquota_notify_admin_txt'] = 'Send kvote advarsler til admin';
+$wb['overquota_notify_reseller_txt'] = 'Send quota warnings to reseller';
 $wb['overquota_notify_client_txt'] = 'Send kvote advarsler til kunde';
 $wb['overquota_notify_onok_txt'] = 'Send kvote ok meddelelse til kunde';
 $wb['overquota_notify_freq_txt'] = 'Send kvote advarsler X dage';
@@ -278,6 +280,7 @@ $wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounte
 $wb['backup_delete_txt'] = 'Delete backups on domain/website delete';
 $wb['overquota_db_notify_threshold_txt'] = 'DB quota warning usage level';
 $wb['overquota_db_notify_admin_txt'] = 'Send DB quota warnings to admin';
+$wb['overquota_db_notify_reseller_txt'] = 'Send DB quota warnings to reseller';
 $wb['overquota_db_notify_client_txt'] = 'Send DB quota warnings to client';
 $wb['php_handler_txt'] = 'Default PHP Handler';
 $wb['php_fpm_default_chroot_txt'] = 'Default chrooted PHP-FPM';
diff --git a/interface/web/admin/lib/lang/el_server_config.lng b/interface/web/admin/lib/lang/el_server_config.lng
index c87c151f8cdfc05d65b237a0ae44a50e764bf325..4a6d1eb3e20756deb1f1234abeee97259ba23621 100644
--- a/interface/web/admin/lib/lang/el_server_config.lng
+++ b/interface/web/admin/lib/lang/el_server_config.lng
@@ -192,12 +192,14 @@ $wb['mailbox_quota_stats_txt'] = 'Mailbox quota statistics';
 $wb['enable_ip_wildcard_txt'] = 'Enable IP wildcard (*)';
 $wb['web_folder_protection_txt'] = 'Make web folders immutable (extended attributes)';
 $wb['overtraffic_notify_admin_txt'] = 'Send overtraffic notification to admin';
+$wb['overtraffic_notify_reseller_txt'] = 'Send overtraffic notification to reseller';
 $wb['overtraffic_notify_client_txt'] = 'Send overtraffic notification to client';
 $wb['overtraffic_disable_web_txt'] = 'Disable websites that exceed traffic limit';
 $wb['rbl_error_regex'] = 'Please specify valid RBL hostnames.';
 $wb['overquota_notify_threshold_txt'] = 'Quota warning usage level';
 $wb['overquota_notify_threshold_error'] = 'Quota warning usage level must be between 0-100%';
 $wb['overquota_notify_admin_txt'] = 'Send quota warnings to admin';
+$wb['overquota_notify_reseller_txt'] = 'Send quota warnings to reseller';
 $wb['overquota_notify_client_txt'] = 'Send quota warnings to client';
 $wb['overquota_notify_onok_txt'] = 'Send quota ok message to client';
 $wb['overquota_notify_freq_txt'] = 'Send quota warning each X days';
@@ -279,6 +281,7 @@ $wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounte
 $wb['backup_delete_txt'] = 'Delete backups on domain/website delete';
 $wb['overquota_db_notify_threshold_txt'] = 'DB quota warning usage level';
 $wb['overquota_db_notify_admin_txt'] = 'Send DB quota warnings to admin';
+$wb['overquota_db_notify_reseller_txt'] = 'Send DB quota warnings to reseller';
 $wb['overquota_db_notify_client_txt'] = 'Send DB quota warnings to client';
 $wb['php_handler_txt'] = 'Default PHP Handler';
 $wb['php_fpm_default_chroot_txt'] = 'Default chrooted PHP-FPM';
diff --git a/interface/web/admin/lib/lang/en_server_config.lng b/interface/web/admin/lib/lang/en_server_config.lng
index 452f698fd7a53fdfc8d1d00d79d042b365f7b07b..fc4d12e0c84a27aeb02f1f168ef8737439fc3665 100644
--- a/interface/web/admin/lib/lang/en_server_config.lng
+++ b/interface/web/admin/lib/lang/en_server_config.lng
@@ -205,12 +205,14 @@ $wb['mailbox_quota_stats_txt'] = 'Mailbox quota statistics';
 $wb['enable_ip_wildcard_txt'] = 'Enable IP wildcard (*)';
 $wb['web_folder_protection_txt'] = 'Make web folders immutable (extended attributes)';
 $wb['overtraffic_notify_admin_txt'] = 'Send overtraffic notification to admin';
+$wb['overtraffic_notify_reseller_txt'] = 'Send overtraffic notification to reseller';
 $wb['overtraffic_notify_client_txt'] = 'Send overtraffic notification to client';
 $wb['overtraffic_disable_web_txt'] = 'Disable websites that exceed traffic limit';
 $wb['rbl_error_regex'] = 'Please specify valid RBL hostnames.';
 $wb['overquota_notify_threshold_txt'] = 'Quota warning usage level';
 $wb['overquota_notify_threshold_error'] = 'Quota warning usage level must be between 0-100%';
 $wb['overquota_notify_admin_txt'] = 'Send quota warnings to admin';
+$wb['overquota_notify_reseller_txt'] = 'Send quota warnings to reseller';
 $wb['overquota_notify_client_txt'] = 'Send quota warnings to client';
 $wb['overquota_notify_onok_txt'] = 'Send quota ok message to client';
 $wb['overquota_notify_freq_txt'] = 'Send quota warning each X days';
@@ -235,6 +237,7 @@ $wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounte
 $wb['backup_delete_txt'] = 'Delete backups on domain/website delete';
 $wb['overquota_db_notify_threshold_txt'] = 'DB quota warning usage level';
 $wb['overquota_db_notify_admin_txt'] = 'Send DB quota warnings to admin';
+$wb['overquota_db_notify_reseller_txt'] = 'Send DB quota warnings to reseller';
 $wb['overquota_db_notify_client_txt'] = 'Send DB quota warnings to client';
 $wb['monitor_system_updates_txt'] = 'Check for Linux updates';
 $wb['php_handler_txt'] = 'Default PHP Handler';
diff --git a/interface/web/admin/lib/lang/es_server_config.lng b/interface/web/admin/lib/lang/es_server_config.lng
index 83b03af94cf53b1462f47cb667d2d4324094e42e..9a49046ad9eb89a1371d5824203e5d443cef50f9 100644
--- a/interface/web/admin/lib/lang/es_server_config.lng
+++ b/interface/web/admin/lib/lang/es_server_config.lng
@@ -191,15 +191,18 @@ $wb['nginx_vhost_conf_enabled_dir_txt'] = 'Directorio de configuración de host
 $wb['no_notifications_txt'] = 'Sin notificaciones';
 $wb['overquota_db_notify_threshold_txt'] = 'DB quota warning usage level';
 $wb['overquota_db_notify_admin_txt'] = 'Enviar advertencias de cuota de base de datos al administrador';
+$wb['overquota_db_notify_reseller_txt'] = 'Send DB quota warnings to reseller';
 $wb['overquota_db_notify_client_txt'] = 'Enviar advertencias de cuota de base de datos a los clientes';
 $wb['overquota_notify_threshold_txt'] = 'Quota warning usage level';
 $wb['overquota_notify_threshold_error'] = 'Quota warning usage level must be between 0-100%';
 $wb['overquota_notify_admin_txt'] = 'Enviar advertencias de cuota excedida al administrador';
+$wb['overquota_notify_reseller_txt'] = 'Send quota warnings to reseller';
 $wb['overquota_notify_client_txt'] = 'Enviar advertencias de cuota excedida al cliente';
 $wb['overquota_notify_freq_note_txt'] = '0 = enviar mensaje solo una vez, sin volver a notificar';
 $wb['overquota_notify_freq_txt'] = 'Enviar advertencia de cuota cada X días';
 $wb['overquota_notify_onok_txt'] = 'Enviar al cliente información de cuota correcta';
 $wb['overtraffic_notify_admin_txt'] = 'Enviar notificación de tráfico sobrepasado al administrador';
+$wb['overtraffic_notify_reseller_txt'] = 'Send overtraffic notification to reseller';
 $wb['overtraffic_notify_client_txt'] = 'Enviar notificación de tráfico sobrepasado al cliente';
 $wb['permissions_txt'] = 'Permisos';
 $wb['php_fpm_ini_path_error_empty'] = 'La ruta al archivo php.ini de PHP-FPM está vacío.';
diff --git a/interface/web/admin/lib/lang/fi_server_config.lng b/interface/web/admin/lib/lang/fi_server_config.lng
index 6bd628411b1145ef45f0d290a60cdd47b0ed89ed..abf945364630f29fe8e17a0fa6a757c1e46ba8f4 100644
--- a/interface/web/admin/lib/lang/fi_server_config.lng
+++ b/interface/web/admin/lib/lang/fi_server_config.lng
@@ -192,12 +192,14 @@ $wb['mailbox_quota_stats_txt'] = 'Mailbox quota statistics';
 $wb['enable_ip_wildcard_txt'] = 'Enable IP wildcard (*)';
 $wb['web_folder_protection_txt'] = 'Make web folders immutable (extended attributes)';
 $wb['overtraffic_notify_admin_txt'] = 'Send overtraffic notification to admin';
+$wb['overtraffic_notify_reseller_txt'] = 'Send overtraffic notification to reseller';
 $wb['overtraffic_notify_client_txt'] = 'Send overtraffic notification to client';
 $wb['overtraffic_disable_web_txt'] = 'Disable websites that exceed traffic limit';
 $wb['rbl_error_regex'] = 'Please specify valid RBL hostnames.';
 $wb['overquota_notify_threshold_txt'] = 'Quota warning usage level';
 $wb['overquota_notify_threshold_error'] = 'Quota warning usage level must be between 0-100%';
 $wb['overquota_notify_admin_txt'] = 'Send quota warnings to admin';
+$wb['overquota_notify_reseller_txt'] = 'Send quota warnings to reseller';
 $wb['overquota_notify_client_txt'] = 'Send quota warnings to client';
 $wb['overquota_notify_onok_txt'] = 'Send quota ok message to client';
 $wb['overquota_notify_freq_txt'] = 'Send quota warning each X days';
@@ -279,6 +281,7 @@ $wb['do_not_try_rescue_mongodb_txt'] = 'Disable MongoDB monitoring';
 $wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounted';
 $wb['overquota_db_notify_threshold_txt'] = 'DB quota warning usage level';
 $wb['overquota_db_notify_admin_txt'] = 'Send DB quota warnings to admin';
+$wb['overquota_db_notify_reseller_txt'] = 'Send DB quota warnings to reseller';
 $wb['overquota_db_notify_client_txt'] = 'Send DB quota warnings to client';
 $wb['php_handler_txt'] = 'Default PHP Handler';
 $wb['php_fpm_default_chroot_txt'] = 'Default chrooted PHP-FPM';
diff --git a/interface/web/admin/lib/lang/fr_server_config.lng b/interface/web/admin/lib/lang/fr_server_config.lng
index 3d4bfb14cde4780f11b41292d891f5d23295118a..d569e520a962192f6c82192f2dd6029d0ecb67ef 100644
--- a/interface/web/admin/lib/lang/fr_server_config.lng
+++ b/interface/web/admin/lib/lang/fr_server_config.lng
@@ -180,12 +180,14 @@ $wb['mailbox_quota_stats_txt'] = 'Mailbox quota statistics';
 $wb['enable_ip_wildcard_txt'] = 'Enable IP wildcard (*)';
 $wb['web_folder_protection_txt'] = 'Make web folders immutable (extended attributes)';
 $wb['overtraffic_notify_admin_txt'] = 'Send overtraffic notification to admin';
+$wb['overtraffic_notify_reseller_txt'] = 'Send overtraffic notification to reseller';
 $wb['overtraffic_notify_client_txt'] = 'Send overtraffic notification to client';
 $wb['overtraffic_disable_web_txt'] = 'Disable websites that exceed traffic limit';
 $wb['rbl_error_regex'] = 'Please specify valid RBL hostnames.';
 $wb['overquota_notify_threshold_txt'] = 'Quota warning usage level';
 $wb['overquota_notify_threshold_error'] = 'Quota warning usage level must be between 0-100%';
 $wb['overquota_notify_admin_txt'] = 'Send quota warnings to admin';
+$wb['overquota_notify_reseller_txt'] = 'Send quota warnings to reseller';
 $wb['overquota_notify_client_txt'] = 'Send quota warnings to client';
 $wb['overquota_notify_onok_txt'] = 'Send quota ok message to client';
 $wb['overquota_notify_freq_txt'] = 'Send quota warning each X days';
@@ -277,6 +279,7 @@ $wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounte
 $wb['backup_delete_txt'] = 'Delete backups on domain/website delete';
 $wb['overquota_db_notify_threshold_txt'] = 'DB quota warning usage level';
 $wb['overquota_db_notify_admin_txt'] = 'Send DB quota warnings to admin';
+$wb['overquota_db_notify_reseller_txt'] = 'Send DB quota warnings to reseller';
 $wb['overquota_db_notify_client_txt'] = 'Send DB quota warnings to client';
 $wb['php_handler_txt'] = 'Default PHP Handler';
 $wb['php_fpm_default_chroot_txt'] = 'Default chrooted PHP-FPM';
diff --git a/interface/web/admin/lib/lang/hr_server_config.lng b/interface/web/admin/lib/lang/hr_server_config.lng
index 1f970f8638b0c7e545f5e93f6c6c5fab4e9e6f14..fa34621e95b7d781b1091af45de6344d1c7fe96e 100644
--- a/interface/web/admin/lib/lang/hr_server_config.lng
+++ b/interface/web/admin/lib/lang/hr_server_config.lng
@@ -192,12 +192,14 @@ $wb['mailbox_quota_stats_txt'] = 'Statistika limita sandučića';
 $wb['enable_ip_wildcard_txt'] = 'Enable IP wildcard (*)';
 $wb['web_folder_protection_txt'] = 'Make web folders immutable (extended attributes)';
 $wb['overtraffic_notify_admin_txt'] = 'Send overtraffic notification to admin';
+$wb['overtraffic_notify_reseller_txt'] = 'Send overtraffic notification to reseller';
 $wb['overtraffic_notify_client_txt'] = 'Send overtraffic notification to client';
 $wb['overtraffic_disable_web_txt'] = 'Disable websites that exceed traffic limit';
 $wb['rbl_error_regex'] = 'Please specify valid RBL hostnames.';
 $wb['overquota_notify_threshold_txt'] = 'Quota warning usage level';
 $wb['overquota_notify_threshold_error'] = 'Quota warning usage level must be between 0-100%';
 $wb['overquota_notify_admin_txt'] = 'Send quota warnings to admin';
+$wb['overquota_notify_reseller_txt'] = 'Send quota warnings to reseller';
 $wb['overquota_notify_client_txt'] = 'Send quota warnings to client';
 $wb['overquota_notify_onok_txt'] = 'Send quota ok message to client';
 $wb['overquota_notify_freq_txt'] = 'Send quota warning each X days';
@@ -279,6 +281,7 @@ $wb['apps_vhost_enabled_txt'] = 'Apps-vhost enabled';
 $wb['do_not_try_rescue_mongodb_txt'] = 'Disable MongoDB monitoring';
 $wb['overquota_db_notify_threshold_txt'] = 'DB quota warning usage level';
 $wb['overquota_db_notify_admin_txt'] = 'Send DB quota warnings to admin';
+$wb['overquota_db_notify_reseller_txt'] = 'Send DB quota warnings to reseller';
 $wb['overquota_db_notify_client_txt'] = 'Send DB quota warnings to client';
 $wb['php_handler_txt'] = 'Default PHP Handler';
 $wb['php_fpm_default_chroot_txt'] = 'Default chrooted PHP-FPM';
diff --git a/interface/web/admin/lib/lang/hu_server_config.lng b/interface/web/admin/lib/lang/hu_server_config.lng
index 25d30c24515a24a0010ec852083a2b82e43299f7..6c73a7d20b7c793cce96b44f2aa841491abf51b9 100644
--- a/interface/web/admin/lib/lang/hu_server_config.lng
+++ b/interface/web/admin/lib/lang/hu_server_config.lng
@@ -192,12 +192,14 @@ $wb['mailbox_quota_stats_txt'] = 'Mailbox quota statistics';
 $wb['enable_ip_wildcard_txt'] = 'Enable IP wildcard (*)';
 $wb['web_folder_protection_txt'] = 'Make web folders immutable (extended attributes)';
 $wb['overtraffic_notify_admin_txt'] = 'Send overtraffic notification to admin';
+$wb['overtraffic_notify_reseller_txt'] = 'Send overtraffic notification to reseller';
 $wb['overtraffic_notify_client_txt'] = 'Send overtraffic notification to client';
 $wb['overtraffic_disable_web_txt'] = 'Disable websites that exceed traffic limit';
 $wb['rbl_error_regex'] = 'Please specify valid RBL hostnames.';
 $wb['overquota_notify_threshold_txt'] = 'Quota warning usage level';
 $wb['overquota_notify_threshold_error'] = 'Quota warning usage level must be between 0-100%';
 $wb['overquota_notify_admin_txt'] = 'Send quota warnings to admin';
+$wb['overquota_notify_reseller_txt'] = 'Send quota warnings to reseller';
 $wb['overquota_notify_client_txt'] = 'Send quota warnings to client';
 $wb['overquota_notify_onok_txt'] = 'Send quota ok message to client';
 $wb['overquota_notify_freq_txt'] = 'Send quota warning each X days';
@@ -279,6 +281,7 @@ $wb['do_not_try_rescue_mongodb_txt'] = 'Disable MongoDB monitoring';
 $wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounted';
 $wb['overquota_db_notify_threshold_txt'] = 'DB quota warning usage level';
 $wb['overquota_db_notify_admin_txt'] = 'Send DB quota warnings to admin';
+$wb['overquota_db_notify_reseller_txt'] = 'Send DB quota warnings to reseller';
 $wb['overquota_db_notify_client_txt'] = 'Send DB quota warnings to client';
 $wb['php_handler_txt'] = 'Default PHP Handler';
 $wb['php_fpm_default_chroot_txt'] = 'Default chrooted PHP-FPM';
diff --git a/interface/web/admin/lib/lang/id_server_config.lng b/interface/web/admin/lib/lang/id_server_config.lng
index f6a54151f30aa69629b02bcde54503f6fe93c263..8a06d38b48813bee0df1b108f9a96497360f5cf7 100644
--- a/interface/web/admin/lib/lang/id_server_config.lng
+++ b/interface/web/admin/lib/lang/id_server_config.lng
@@ -192,12 +192,14 @@ $wb['mailbox_quota_stats_txt'] = 'Mailbox quota statistics';
 $wb['enable_ip_wildcard_txt'] = 'Enable IP wildcard (*)';
 $wb['web_folder_protection_txt'] = 'Make web folders immutable (extended attributes)';
 $wb['overtraffic_notify_admin_txt'] = 'Send overtraffic notification to admin';
+$wb['overtraffic_notify_reseller_txt'] = 'Send overtraffic notification to reseller';
 $wb['overtraffic_notify_client_txt'] = 'Send overtraffic notification to client';
 $wb['overtraffic_disable_web_txt'] = 'Disable websites that exceed traffic limit';
 $wb['rbl_error_regex'] = 'Please specify valid RBL hostnames.';
 $wb['overquota_notify_threshold_txt'] = 'Quota warning usage level';
 $wb['overquota_notify_threshold_error'] = 'Quota warning usage level must be between 0-100%';
 $wb['overquota_notify_admin_txt'] = 'Send quota warnings to admin';
+$wb['overquota_notify_reseller_txt'] = 'Send quota warnings to reseller';
 $wb['overquota_notify_client_txt'] = 'Send quota warnings to client';
 $wb['overquota_notify_onok_txt'] = 'Send quota ok message to client';
 $wb['overquota_notify_freq_txt'] = 'Send quota warning each X days';
@@ -279,6 +281,7 @@ $wb['do_not_try_rescue_mongodb_txt'] = 'Disable MongoDB monitoring';
 $wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounted';
 $wb['overquota_db_notify_threshold_txt'] = 'DB quota warning usage level';
 $wb['overquota_db_notify_admin_txt'] = 'Send DB quota warnings to admin';
+$wb['overquota_db_notify_reseller_txt'] = 'Send DB quota warnings to reseller';
 $wb['overquota_db_notify_client_txt'] = 'Send DB quota warnings to client';
 $wb['php_handler_txt'] = 'Default PHP Handler';
 $wb['php_fpm_default_chroot_txt'] = 'Default chrooted PHP-FPM';
diff --git a/interface/web/admin/lib/lang/it_server_config.lng b/interface/web/admin/lib/lang/it_server_config.lng
index 7d67123662c722bfd20962d11914acf4cc48a581..384cb653433fe2e317fde73ced52d5f5b44b77fd 100644
--- a/interface/web/admin/lib/lang/it_server_config.lng
+++ b/interface/web/admin/lib/lang/it_server_config.lng
@@ -180,12 +180,14 @@ $wb['mailbox_quota_stats_txt'] = 'Statistiche Quota Casella di Posta';
 $wb['enable_ip_wildcard_txt'] = 'Abilita  IP wildcard (*)';
 $wb['web_folder_protection_txt'] = 'Imposta cartelle sito in moaniera non modificabile (attributi estesi)';
 $wb['overtraffic_notify_admin_txt'] = 'Trasmetti notifiche superamento traffico ad admin';
+$wb['overtraffic_notify_reseller_txt'] = 'Send overtraffic notification to reseller';
 $wb['overtraffic_notify_client_txt'] = 'Trasmetti notifiche superamento traffico al cliente';
 $wb['overtraffic_disable_web_txt'] = 'Disabilita i siti web che eccedono il limiti di traffico';
 $wb['rbl_error_regex'] = 'Per cortesia specificare nomi host RBL validi.';
 $wb['overquota_notify_threshold_txt'] = 'Quota warning usage level';
 $wb['overquota_notify_threshold_error'] = 'Quota warning usage level must be between 0-100%';
 $wb['overquota_notify_admin_txt'] = 'Trasmetti allarmi quota ad admin';
+$wb['overquota_notify_reseller_txt'] = 'Send quota warnings to reseller';
 $wb['overquota_notify_client_txt'] = 'Trasmetti allarmi quota al cliente';
 $wb['overquota_notify_onok_txt'] = 'Trasmetti messaggio quota ok al cliente';
 $wb['overquota_notify_freq_txt'] = 'Trasmetti allarmi quota ogni X giorni';
@@ -276,6 +278,7 @@ $wb['v6_prefix_length'] = 'Prefisso troppo lungo secondo le regole IPv6';
 $wb['backup_dir_mount_cmd_txt'] = 'Comanda mount se la directory di backup non è montata';
 $wb['backup_delete_txt'] = 'Cancellare i backup alla cancellazione dei domini/siti web';
 $wb['overquota_db_notify_admin_txt'] = 'Invia avviso di quota DB all\'amministratore';
+$wb['overquota_db_notify_reseller_txt'] = 'Send DB quota warnings to reseller';
 $wb['overquota_db_notify_client_txt'] = 'Invia avviso di quota DB al cliente';
 $wb['php_handler_txt'] = 'Default PHP Handler';
 $wb['php_fpm_default_chroot_txt'] = 'Default chrooted PHP-FPM';
diff --git a/interface/web/admin/lib/lang/ja_server_config.lng b/interface/web/admin/lib/lang/ja_server_config.lng
index a78f0900d81481bd6a55a9e5db99becaae380af1..bf6d47d59ea436c32ca639a47271893cbd9883a8 100644
--- a/interface/web/admin/lib/lang/ja_server_config.lng
+++ b/interface/web/admin/lib/lang/ja_server_config.lng
@@ -192,12 +192,14 @@ $wb['mailbox_quota_stats_txt'] = 'Mailbox quota statistics';
 $wb['enable_ip_wildcard_txt'] = 'Enable IP wildcard (*)';
 $wb['web_folder_protection_txt'] = 'Make web folders immutable (extended attributes)';
 $wb['overtraffic_notify_admin_txt'] = 'Send overtraffic notification to admin';
+$wb['overtraffic_notify_reseller_txt'] = 'Send overtraffic notification to reseller';
 $wb['overtraffic_notify_client_txt'] = 'Send overtraffic notification to client';
 $wb['overtraffic_disable_web_txt'] = 'Disable websites that exceed traffic limit';
 $wb['rbl_error_regex'] = 'Please specify valid RBL hostnames.';
 $wb['overquota_notify_threshold_txt'] = 'Quota warning usage level';
 $wb['overquota_notify_threshold_error'] = 'Quota warning usage level must be between 0-100%';
 $wb['overquota_notify_admin_txt'] = 'Send quota warnings to admin';
+$wb['overquota_notify_reseller_txt'] = 'Send quota warnings to reseller';
 $wb['overquota_notify_client_txt'] = 'Send quota warnings to client';
 $wb['overquota_notify_onok_txt'] = 'Send quota ok message to client';
 $wb['overquota_notify_freq_txt'] = 'Send quota warning each X days';
@@ -279,6 +281,7 @@ $wb['do_not_try_rescue_mongodb_txt'] = 'Disable MongoDB monitoring';
 $wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounted';
 $wb['overquota_db_notify_threshold_txt'] = 'DB quota warning usage level';
 $wb['overquota_db_notify_admin_txt'] = 'Send DB quota warnings to admin';
+$wb['overquota_db_notify_reseller_txt'] = 'Send DB quota warnings to reseller';
 $wb['overquota_db_notify_client_txt'] = 'Send DB quota warnings to client';
 $wb['php_handler_txt'] = 'Default PHP Handler';
 $wb['php_fpm_default_chroot_txt'] = 'Default chrooted PHP-FPM';
diff --git a/interface/web/admin/lib/lang/nl_server_config.lng b/interface/web/admin/lib/lang/nl_server_config.lng
index fc39a2a25683542b2a2b7504996775bacbb05ae4..c89c345e77a4c3ded490cb8edae592673b10eb5a 100644
--- a/interface/web/admin/lib/lang/nl_server_config.lng
+++ b/interface/web/admin/lib/lang/nl_server_config.lng
@@ -192,12 +192,14 @@ $wb['mailbox_quota_stats_txt'] = 'Mailbox quota statistics';
 $wb['enable_ip_wildcard_txt'] = 'Enable IP wildcard (*)';
 $wb['web_folder_protection_txt'] = 'Make web folders immutable (extended attributes)';
 $wb['overtraffic_notify_admin_txt'] = 'Send overtraffic notification to admin';
+$wb['overtraffic_notify_reseller_txt'] = 'Send overtraffic notification to reseller';
 $wb['overtraffic_notify_client_txt'] = 'Send overtraffic notification to client';
 $wb['overtraffic_disable_web_txt'] = 'Disable websites that exceed traffic limit';
 $wb['rbl_error_regex'] = 'Please specify valid RBL hostnames.';
 $wb['overquota_notify_threshold_txt'] = 'Quota warning usage level';
 $wb['overquota_notify_threshold_error'] = 'Quota warning usage level must be between 0-100%';
 $wb['overquota_notify_admin_txt'] = 'Send quota warnings to admin';
+$wb['overquota_notify_reseller_txt'] = 'Send quota warnings to reseller';
 $wb['overquota_notify_client_txt'] = 'Send quota warnings to client';
 $wb['overquota_notify_onok_txt'] = 'Send quota ok message to client';
 $wb['overquota_notify_freq_txt'] = 'Send quota warning each X days';
@@ -279,6 +281,7 @@ $wb['do_not_try_rescue_mongodb_txt'] = 'Disable MongoDB monitoring';
 $wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounted';
 $wb['overquota_db_notify_threshold_txt'] = 'DB quota warning usage level';
 $wb['overquota_db_notify_admin_txt'] = 'Send DB quota warnings to admin';
+$wb['overquota_db_notify_reseller_txt'] = 'Send DB quota warnings to reseller';
 $wb['overquota_db_notify_client_txt'] = 'Send DB quota warnings to client';
 $wb['php_handler_txt'] = 'Default PHP Handler';
 $wb['php_fpm_default_chroot_txt'] = 'Default chrooted PHP-FPM';
diff --git a/interface/web/admin/lib/lang/pl_server_config.lng b/interface/web/admin/lib/lang/pl_server_config.lng
index 4b838bd3ea3efbd9c9d247f0f2845cb3b83eff3a..93ded596ea1125d73b831d0148be9112a23a5b83 100644
--- a/interface/web/admin/lib/lang/pl_server_config.lng
+++ b/interface/web/admin/lib/lang/pl_server_config.lng
@@ -192,12 +192,14 @@ $wb['mailbox_quota_stats_txt'] = 'Statystyki użycia skrzynek email';
 $wb['enable_ip_wildcard_txt'] = 'Enable IP wildcard (*)';
 $wb['web_folder_protection_txt'] = 'Make web folders immutable (extended attributes)';
 $wb['overtraffic_notify_admin_txt'] = 'Prześlij informacje o przekroczeniu transferu do admina';
+$wb['overtraffic_notify_reseller_txt'] = 'Send overtraffic notification to reseller';
 $wb['overtraffic_notify_client_txt'] = 'Prześlij informacje o przekroczeniu transferu do klienta';
 $wb['overtraffic_disable_web_txt'] = 'Disable websites that exceed traffic limit';
 $wb['rbl_error_regex'] = 'Please specify valid RBL hostnames.';
 $wb['overquota_notify_threshold_txt'] = 'Quota warning usage level';
 $wb['overquota_notify_threshold_error'] = 'Quota warning usage level must be between 0-100%';
 $wb['overquota_notify_admin_txt'] = 'Send quota warnings to admin';
+$wb['overquota_notify_reseller_txt'] = 'Send quota warnings to reseller';
 $wb['overquota_notify_client_txt'] = 'Send quota warnings to client';
 $wb['overquota_notify_onok_txt'] = 'Send quota ok message to client';
 $wb['overquota_notify_freq_txt'] = 'Send quota warning each X days';
@@ -279,6 +281,7 @@ $wb['do_not_try_rescue_mongodb_txt'] = 'Disable MongoDB monitoring';
 $wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounted';
 $wb['overquota_db_notify_threshold_txt'] = 'DB quota warning usage level';
 $wb['overquota_db_notify_admin_txt'] = 'Send DB quota warnings to admin';
+$wb['overquota_db_notify_reseller_txt'] = 'Send DB quota warnings to reseller';
 $wb['overquota_db_notify_client_txt'] = 'Send DB quota warnings to client';
 $wb['php_handler_txt'] = 'Default PHP Handler';
 $wb['php_fpm_default_chroot_txt'] = 'Default chrooted PHP-FPM';
diff --git a/interface/web/admin/lib/lang/pt_server_config.lng b/interface/web/admin/lib/lang/pt_server_config.lng
index d42a415958513eeb320e5cc77a8fcd4871e06f58..95faebb41e4b32cc42a419d140d615d4fc2dccef 100644
--- a/interface/web/admin/lib/lang/pt_server_config.lng
+++ b/interface/web/admin/lib/lang/pt_server_config.lng
@@ -192,12 +192,14 @@ $wb['mailbox_quota_stats_txt'] = 'Mailbox quota statistics';
 $wb['enable_ip_wildcard_txt'] = 'Enable IP wildcard (*)';
 $wb['web_folder_protection_txt'] = 'Make web folders immutable (extended attributes)';
 $wb['overtraffic_notify_admin_txt'] = 'Send overtraffic notification to admin';
+$wb['overtraffic_notify_reseller_txt'] = 'Send overtraffic notification to reseller';
 $wb['overtraffic_notify_client_txt'] = 'Send overtraffic notification to client';
 $wb['overtraffic_disable_web_txt'] = 'Disable websites that exceed traffic limit';
 $wb['rbl_error_regex'] = 'Please specify valid RBL hostnames.';
 $wb['overquota_notify_threshold_txt'] = 'Quota warning usage level';
 $wb['overquota_notify_threshold_error'] = 'Quota warning usage level must be between 0-100%';
 $wb['overquota_notify_admin_txt'] = 'Send quota warnings to admin';
+$wb['overquota_notify_reseller_txt'] = 'Send quota warnings to reseller';
 $wb['overquota_notify_client_txt'] = 'Send quota warnings to client';
 $wb['overquota_notify_onok_txt'] = 'Send quota ok message to client';
 $wb['overquota_notify_freq_txt'] = 'Send quota warning each X days';
@@ -279,6 +281,7 @@ $wb['do_not_try_rescue_mongodb_txt'] = 'Disable MongoDB monitoring';
 $wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounted';
 $wb['overquota_db_notify_threshold_txt'] = 'DB quota warning usage level';
 $wb['overquota_db_notify_admin_txt'] = 'Send DB quota warnings to admin';
+$wb['overquota_db_notify_reseller_txt'] = 'Send DB quota warnings to reseller';
 $wb['overquota_db_notify_client_txt'] = 'Send DB quota warnings to client';
 $wb['php_handler_txt'] = 'Default PHP Handler';
 $wb['php_fpm_default_chroot_txt'] = 'Default chrooted PHP-FPM';
diff --git a/interface/web/admin/lib/lang/ro_server_config.lng b/interface/web/admin/lib/lang/ro_server_config.lng
index 81488177c015041ca0bca2488f99e4c98973c5ad..bb474f5930ebd10d2833f11f6537a52e681fb90a 100644
--- a/interface/web/admin/lib/lang/ro_server_config.lng
+++ b/interface/web/admin/lib/lang/ro_server_config.lng
@@ -192,12 +192,14 @@ $wb['mailbox_quota_stats_txt'] = 'Mailbox quota statistics';
 $wb['enable_ip_wildcard_txt'] = 'Enable IP wildcard (*)';
 $wb['web_folder_protection_txt'] = 'Make web folders immutable (extended attributes)';
 $wb['overtraffic_notify_admin_txt'] = 'Send overtraffic notification to admin';
+$wb['overtraffic_notify_reseller_txt'] = 'Send overtraffic notification to reseller';
 $wb['overtraffic_notify_client_txt'] = 'Send overtraffic notification to client';
 $wb['overtraffic_disable_web_txt'] = 'Disable websites that exceed traffic limit';
 $wb['rbl_error_regex'] = 'Please specify valid RBL hostnames.';
 $wb['overquota_notify_threshold_txt'] = 'Quota warning usage level';
 $wb['overquota_notify_threshold_error'] = 'Quota warning usage level must be between 0-100%';
 $wb['overquota_notify_admin_txt'] = 'Send quota warnings to admin';
+$wb['overquota_notify_reseller_txt'] = 'Send quota warnings to reseller';
 $wb['overquota_notify_client_txt'] = 'Send quota warnings to client';
 $wb['overquota_notify_onok_txt'] = 'Send quota ok message to client';
 $wb['overquota_notify_freq_txt'] = 'Send quota warning each X days';
@@ -279,6 +281,7 @@ $wb['do_not_try_rescue_mongodb_txt'] = 'Disable MongoDB monitoring';
 $wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounted';
 $wb['overquota_db_notify_threshold_txt'] = 'DB quota warning usage level';
 $wb['overquota_db_notify_admin_txt'] = 'Send DB quota warnings to admin';
+$wb['overquota_db_notify_reseller_txt'] = 'Send DB quota warnings to reseller';
 $wb['overquota_db_notify_client_txt'] = 'Send DB quota warnings to client';
 $wb['php_handler_txt'] = 'Default PHP Handler';
 $wb['php_fpm_default_chroot_txt'] = 'Default chrooted PHP-FPM';
diff --git a/interface/web/admin/lib/lang/ru_server_config.lng b/interface/web/admin/lib/lang/ru_server_config.lng
index bce96e9339a72100c11e5c6c13fcd04a18c4fd2e..1cd7c64cc448c718e4beabd5824285660b678e79 100644
--- a/interface/web/admin/lib/lang/ru_server_config.lng
+++ b/interface/web/admin/lib/lang/ru_server_config.lng
@@ -192,12 +192,14 @@ $wb['mailbox_quota_stats_txt'] = 'Статистика квоты почтово
 $wb['enable_ip_wildcard_txt'] = 'Включить IP подстановочный знак (*)';
 $wb['web_folder_protection_txt'] = 'Сделать веб-папки неизменяемыми (расширенные атрибуты)';
 $wb['overtraffic_notify_admin_txt'] = 'Присылать уведомление трафика администратору';
+$wb['overtraffic_notify_reseller_txt'] = 'Send overtraffic notification to reseller';
 $wb['overtraffic_notify_client_txt'] = 'Присылать уведомление трафика клиенту';
 $wb['overtraffic_disable_web_txt'] = 'Disable websites that exceed traffic limit';
 $wb['rbl_error_regex'] = 'Пожалуйста, укажите действительные имена хостов RBL.';
 $wb['overquota_notify_threshold_txt'] = 'Quota warning usage level';
 $wb['overquota_notify_threshold_error'] = 'Quota warning usage level must be between 0-100%';
 $wb['overquota_notify_admin_txt'] = 'Присылать предупреждения квоты администратору';
+$wb['overquota_notify_reseller_txt'] = 'Send quota warnings to reseller';
 $wb['overquota_notify_client_txt'] = 'Присылать предупреждения квоты клиенту';
 $wb['overquota_notify_onok_txt'] = 'Присылать сообщение квоты ОК клиенту';
 $wb['overquota_notify_freq_txt'] = 'Присылать предупреждения квоты каждые Х дней';
@@ -279,6 +281,7 @@ $wb['do_not_try_rescue_mongodb_txt'] = 'Отключить мониторинг
 $wb['backup_dir_mount_cmd_txt'] = 'Выполните команду монтирования, если каталог резервного копирования не установлен';
 $wb['overquota_db_notify_threshold_txt'] = 'DB quota warning usage level';
 $wb['overquota_db_notify_admin_txt'] = 'Присылать предупреждения квоты DB администратору';
+$wb['overquota_db_notify_reseller_txt'] = 'Send DB quota warnings to reseller';
 $wb['overquota_db_notify_client_txt'] = 'Присылать предупреждения квоты DB клиенту';
 $wb['php_handler_txt'] = 'Обработчик PHP по умолчанию';
 $wb['php_fpm_default_chroot_txt'] = 'Default chrooted PHP-FPM';
diff --git a/interface/web/admin/lib/lang/se_server_config.lng b/interface/web/admin/lib/lang/se_server_config.lng
index 4f8d24411785d3b608c600a4e8e6995eba60cd6a..da6d90d1ecf60d951fc9f962468e16fb6e65da8b 100644
--- a/interface/web/admin/lib/lang/se_server_config.lng
+++ b/interface/web/admin/lib/lang/se_server_config.lng
@@ -192,12 +192,14 @@ $wb['mailbox_quota_stats_txt'] = 'Mailbox quota statistics';
 $wb['enable_ip_wildcard_txt'] = 'Enable IP wildcard (*)';
 $wb['web_folder_protection_txt'] = 'Make web folders immutable (extended attributes)';
 $wb['overtraffic_notify_admin_txt'] = 'Send overtraffic notification to admin';
+$wb['overtraffic_notify_reseller_txt'] = 'Send overtraffic notification to reseller';
 $wb['overtraffic_notify_client_txt'] = 'Send overtraffic notification to client';
 $wb['overtraffic_disable_web_txt'] = 'Disable websites that exceed traffic limit';
 $wb['rbl_error_regex'] = 'Please specify valid RBL hostnames.';
 $wb['overquota_notify_threshold_txt'] = 'Quota warning usage level';
 $wb['overquota_notify_threshold_error'] = 'Quota warning usage level must be between 0-100%';
 $wb['overquota_notify_admin_txt'] = 'Send quota warnings to admin';
+$wb['overquota_notify_reseller_txt'] = 'Send quota warnings to reseller';
 $wb['overquota_notify_client_txt'] = 'Send quota warnings to client';
 $wb['overquota_notify_onok_txt'] = 'Send quota ok message to client';
 $wb['overquota_notify_freq_txt'] = 'Send quota warning each X days';
@@ -279,6 +281,7 @@ $wb['do_not_try_rescue_mongodb_txt'] = 'Disable MongoDB monitoring';
 $wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounted';
 $wb['overquota_db_notify_threshold_txt'] = 'DB quota warning usage level';
 $wb['overquota_db_notify_admin_txt'] = 'Send DB quota warnings to admin';
+$wb['overquota_db_notify_reseller_txt'] = 'Send DB quota warnings to reseller';
 $wb['overquota_db_notify_client_txt'] = 'Send DB quota warnings to client';
 $wb['php_handler_txt'] = 'Default PHP Handler';
 $wb['php_fpm_default_chroot_txt'] = 'Default chrooted PHP-FPM';
diff --git a/interface/web/admin/lib/lang/sk_server_config.lng b/interface/web/admin/lib/lang/sk_server_config.lng
index b13462584ea441f8bc34d002070a4ed00b749346..37a3d597fb2dacbfddd9c9509214f629a79a3a40 100644
--- a/interface/web/admin/lib/lang/sk_server_config.lng
+++ b/interface/web/admin/lib/lang/sk_server_config.lng
@@ -192,12 +192,14 @@ $wb['mailbox_quota_stats_txt'] = 'Mailbox quota statistics';
 $wb['enable_ip_wildcard_txt'] = 'Enable IP wildcard (*)';
 $wb['web_folder_protection_txt'] = 'Make web folders immutable (extended attributes)';
 $wb['overtraffic_notify_admin_txt'] = 'Send overtraffic notification to admin';
+$wb['overtraffic_notify_reseller_txt'] = 'Send overtraffic notification to reseller';
 $wb['overtraffic_notify_client_txt'] = 'Send overtraffic notification to client';
 $wb['overtraffic_disable_web_txt'] = 'Disable websites that exceed traffic limit';
 $wb['rbl_error_regex'] = 'Please specify valid RBL hostnames.';
 $wb['overquota_notify_threshold_txt'] = 'Quota warning usage level';
 $wb['overquota_notify_threshold_error'] = 'Quota warning usage level must be between 0-100%';
 $wb['overquota_notify_admin_txt'] = 'Send quota warnings to admin';
+$wb['overquota_notify_reseller_txt'] = 'Send quota warnings to reseller';
 $wb['overquota_notify_client_txt'] = 'Send quota warnings to client';
 $wb['overquota_notify_onok_txt'] = 'Send quota ok message to client';
 $wb['overquota_notify_freq_txt'] = 'Send quota warning each X days';
@@ -279,6 +281,7 @@ $wb['do_not_try_rescue_mongodb_txt'] = 'Disable MongoDB monitoring';
 $wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounted';
 $wb['overquota_db_notify_threshold_txt'] = 'DB quota warning usage level';
 $wb['overquota_db_notify_admin_txt'] = 'Send DB quota warnings to admin';
+$wb['overquota_db_notify_reseller_txt'] = 'Send DB quota warnings to reseller';
 $wb['overquota_db_notify_client_txt'] = 'Send DB quota warnings to client';
 $wb['php_handler_txt'] = 'Default PHP Handler';
 $wb['php_fpm_default_chroot_txt'] = 'Default chrooted PHP-FPM';
diff --git a/interface/web/admin/lib/lang/tr_server_config.lng b/interface/web/admin/lib/lang/tr_server_config.lng
index e15677aa3d5ac8d274f1a4fbd4202deddc4dca64..9b8bfb383f6bce44b0df8565bcc6e59b93883e5d 100644
--- a/interface/web/admin/lib/lang/tr_server_config.lng
+++ b/interface/web/admin/lib/lang/tr_server_config.lng
@@ -199,12 +199,14 @@ $wb['mailbox_quota_stats_txt'] = 'E-posta Kutusu Kota İstatistikleri';
 $wb['enable_ip_wildcard_txt'] = 'IP Genel Karakteri (*) Kullanılsın';
 $wb['web_folder_protection_txt'] = 'Web klasörleri ayarlanamasın (genişletilmiş öznitelikler)';
 $wb['overtraffic_notify_admin_txt'] = 'Trafik Aşımı Bildirimi Yöneticiye Gönderilsin';
+$wb['overtraffic_notify_reseller_txt'] = 'Send overtraffic notification to reseller';
 $wb['overtraffic_notify_client_txt'] = 'Trafik Aşımı Bildirimi Müşteriye Gönderilsin';
 $wb['overtraffic_disable_web_txt'] = 'Disable websites that exceed traffic limit';
 $wb['rbl_error_regex'] = 'Lütfen geçerli RBL sunucu adları yazın.';
 $wb['overquota_notify_threshold_txt'] = 'Quota warning usage level';
 $wb['overquota_notify_threshold_error'] = 'Quota warning usage level must be between 0-100%';
 $wb['overquota_notify_admin_txt'] = 'Kota Uyarıları Yöneticiye Gönderilsin';
+$wb['overquota_notify_reseller_txt'] = 'Send quota warnings to reseller';
 $wb['overquota_notify_client_txt'] = 'Kota Uyarıları Müşteriye Gönderilsin';
 $wb['overquota_notify_onok_txt'] = 'Kota Tamam İletisi Müşteriye Gönderilsin';
 $wb['overquota_notify_freq_txt'] = 'Kota Uyarısı Gönderim Sıklığı (Gün)';
@@ -229,6 +231,7 @@ $wb['backup_dir_mount_cmd_txt'] = 'Mount komutu, yedek klasörü takılı değil
 $wb['backup_delete_txt'] = 'Etki alanı ya da web sitesi silindiğinde yedekler de silinsin';
 $wb['overquota_db_notify_threshold_txt'] = 'DB quota warning usage level';
 $wb['overquota_db_notify_admin_txt'] = 'Veritabanı Kotası Bildirimleri Yöneticiye Gönderilsin';
+$wb['overquota_db_notify_reseller_txt'] = 'Send DB quota warnings to reseller';
 $wb['overquota_db_notify_client_txt'] = 'Veritabanı Kotası Bildirimleri Müşteriye Gönderilsin';
 $wb['monitor_system_updates_txt'] = 'Linux Güncellemeleri Denetlensin';
 $wb['php_handler_txt'] = 'Varsayılan PHP İşleyici';
diff --git a/interface/web/admin/templates/server_config_mail_edit.htm b/interface/web/admin/templates/server_config_mail_edit.htm
index d23a23a59cd998984660055106df4d92327bdb56..1876b78f4bbbbc3cd67e8be47c1860a7d55040d9 100644
--- a/interface/web/admin/templates/server_config_mail_edit.htm
+++ b/interface/web/admin/templates/server_config_mail_edit.htm
@@ -157,6 +157,12 @@
                     {tmpl_var name='overquota_notify_admin'}
                 </div>
             </div>
+            <div class="form-group">
+                <label class="col-sm-3 control-label">{tmpl_var name='overquota_notify_reseller_txt'}</label>
+                <div class="col-sm-9">
+                    {tmpl_var name='overquota_notify_reseller'}
+                </div>
+            </div>
             <div class="form-group">
                 <label class="col-sm-3 control-label">{tmpl_var name='overquota_notify_client_txt'}</label>
                 <div class="col-sm-9">
diff --git a/interface/web/admin/templates/server_config_web_edit.htm b/interface/web/admin/templates/server_config_web_edit.htm
index 5cf5c43a75826bce63f1c089366bf87bb3383fec..2161907cb5d76790f06e1daf94b5eb1d33070bef 100644
--- a/interface/web/admin/templates/server_config_web_edit.htm
+++ b/interface/web/admin/templates/server_config_web_edit.htm
@@ -133,6 +133,12 @@
                     {tmpl_var name='overtraffic_notify_admin'}
                 </div>
             </div>
+            <div class="form-group">
+                <label class="col-sm-3 control-label">{tmpl_var name='overtraffic_notify_reseller_txt'}</label>
+                <div class="col-sm-9">
+                    {tmpl_var name='overtraffic_notify_reseller'}
+                </div>
+            </div>
             <div class="form-group">
                 <label class="col-sm-3 control-label">{tmpl_var name='overtraffic_notify_client_txt'}</label>
                 <div class="col-sm-9">
@@ -156,6 +162,12 @@
                     {tmpl_var name='overquota_notify_admin'}
                 </div>
             </div>
+            <div class="form-group">
+                <label class="col-sm-3 control-label">{tmpl_var name='overquota_notify_reseller_txt'}</label>
+                <div class="col-sm-9">
+                    {tmpl_var name='overquota_notify_reseller'}
+                </div>
+            </div>
             <div class="form-group">
                 <label class="col-sm-3 control-label">{tmpl_var name='overquota_notify_client_txt'}</label>
                 <div class="col-sm-9">
@@ -173,6 +185,12 @@
 					{tmpl_var name='overquota_db_notify_admin'}
 				 </div>
 			</div>
+            <div class="form-group">
+                <label class="col-sm-3 control-label">{tmpl_var name='overquota_db_notify_reseller_txt'}</label>
+                <div class="col-sm-9">
+                    {tmpl_var name='overquota_db_notify_reseller'}
+                </div>
+            </div>
 			<div class="form-group">
 				<label class="col-sm-3 control-label">{tmpl_var name='overquota_db_notify_client_txt'}</label>
 				<div class="col-sm-9">
diff --git a/interface/web/login/index.php b/interface/web/login/index.php
index a595d9e2b8682708e53013fef91a0c437f498471..c4643f4ed2f9f7c076df06a15106b40c1ba93cb8 100644
--- a/interface/web/login/index.php
+++ b/interface/web/login/index.php
@@ -134,6 +134,8 @@ function process_login_request(app $app, &$error, $conf, $module)
 
 		if ($loginAs) {
 			echo 'LOGIN_REDIRECT:'.$_SESSION['s']['module']['startpage'];
+			$app->plugin->raiseEvent('login', $username);
+			$app->auth_log('Successful login for user \''. $username .'\' ' . $msg . ' from '. $_SERVER['REMOTE_ADDR'] .' at '. date('Y-m-d H:i:s') . ' with session ID ' .session_id());
 			exit;
 		} else {
 
diff --git a/interface/web/login/lib/lang/ar.lng b/interface/web/login/lib/lang/ar.lng
index 74e4c49ecd6e5d5814db4045e0e769fc6833ff72..79ff8def0bfad10129e96da146ec9a7629d29b32 100644
--- a/interface/web/login/lib/lang/ar.lng
+++ b/interface/web/login/lib/lang/ar.lng
@@ -39,12 +39,6 @@ $wb['otp_code_email_sent_txt'] = 'An email was sent to';
 $wb['otp_code_email_subject_txt'] = 'ISPConfig Login authentication';
 $wb['otp_code_email_template_txt'] = 'Your One time login code is %s' . PHP_EOL . 'This code is valid for 10 minutes.' . PHP_EOL;
 $wb['otp_code_resend_txt'] = 'Request new code';
-$wb['otp_code_txt'] = 'Two Factor Authentication';
-$wb['otp_code_desc_txt'] = 'Enter the code you got from your authenticator app or via email.';
-$wb['otp_code_placeholder_txt'] = 'OTP code';
-$wb['otp_code_email_sent_txt'] = 'An email was sent to';
-$wb['otp_code_email_subject_txt'] = 'ISPConfig Login authentication';
-$wb['otp_code_email_template_txt'] = 'Your One time login code is %s' . PHP_EOL . 'This code is valid for 10 minutes.' . PHP_EOL;
-$wb['otp_code_resend_txt'] = 'Request new code';
 $wb['otp_code_email_sent_failed_txt'] = 'Failed sending an email to %s';
+$wb['otp_code_email_sent_wait_txt'] = 'Please wait, re-sending the code is only possible after %s seconds.';
 ?>
diff --git a/interface/web/login/lib/lang/bg.lng b/interface/web/login/lib/lang/bg.lng
index 6d6f92c87371215a299b51eb15ed9aa3bed719a5..18f46d6df8f5be5e44473db554981d8c28b95807 100644
--- a/interface/web/login/lib/lang/bg.lng
+++ b/interface/web/login/lib/lang/bg.lng
@@ -40,4 +40,5 @@ $wb['otp_code_email_subject_txt'] = 'ISPConfig Login authentication';
 $wb['otp_code_email_template_txt'] = 'Your One time login code is %s' . PHP_EOL . 'This code is valid for 10 minutes.' . PHP_EOL;
 $wb['otp_code_resend_txt'] = 'Request new code';
 $wb['otp_code_email_sent_failed_txt'] = 'Failed sending an email to %s';
+$wb['otp_code_email_sent_wait_txt'] = 'Please wait, re-sending the code is only possible after %s seconds.';
 ?>
diff --git a/interface/web/login/lib/lang/br.lng b/interface/web/login/lib/lang/br.lng
index e8df8f25dce2c777d8d2f64242a909eade9fbca9..1f5b41c369389027fae7cb32be3a66c392895a39 100644
--- a/interface/web/login/lib/lang/br.lng
+++ b/interface/web/login/lib/lang/br.lng
@@ -40,3 +40,4 @@ $wb['otp_code_email_subject_txt'] = 'ISPConfig Login authentication';
 $wb['otp_code_email_template_txt'] = 'Your One time login code is %s' . PHP_EOL . 'This code is valid for 10 minutes.' . PHP_EOL;
 $wb['otp_code_resend_txt'] = 'Request new code';
 $wb['otp_code_email_sent_failed_txt'] = 'Failed sending an email to %s';
+$wb['otp_code_email_sent_wait_txt'] = 'Please wait, re-sending the code is only possible after %s seconds.';
diff --git a/interface/web/login/lib/lang/ca.lng b/interface/web/login/lib/lang/ca.lng
index 0895c1df492e48bef35305d5f1bb608067669b91..f4aa11776a941d8b506392f45007d051efa6700f 100644
--- a/interface/web/login/lib/lang/ca.lng
+++ b/interface/web/login/lib/lang/ca.lng
@@ -40,4 +40,5 @@ $wb['otp_code_email_subject_txt'] = 'ISPConfig Login authentication';
 $wb['otp_code_email_template_txt'] = 'Your One time login code is %s' . PHP_EOL . 'This code is valid for 10 minutes.' . PHP_EOL;
 $wb['otp_code_resend_txt'] = 'Request new code';
 $wb['otp_code_email_sent_failed_txt'] = 'Failed sending an email to %s';
+$wb['otp_code_email_sent_wait_txt'] = 'Please wait, re-sending the code is only possible after %s seconds.';
 ?>
diff --git a/interface/web/login/lib/lang/cz.lng b/interface/web/login/lib/lang/cz.lng
index 8089dcc5fc79cee78c588374c26431c5136d70f4..a57ff3f7044885f0acae16a68495376c7e63e0bf 100644
--- a/interface/web/login/lib/lang/cz.lng
+++ b/interface/web/login/lib/lang/cz.lng
@@ -40,4 +40,5 @@ $wb['otp_code_email_subject_txt'] = 'ISPConfig Login authentication';
 $wb['otp_code_email_template_txt'] = 'Your One time login code is %s' . PHP_EOL . 'This code is valid for 10 minutes.' . PHP_EOL;
 $wb['otp_code_resend_txt'] = 'Request new code';
 $wb['otp_code_email_sent_failed_txt'] = 'Failed sending an email to %s';
+$wb['otp_code_email_sent_wait_txt'] = 'Please wait, re-sending the code is only possible after %s seconds.';
 ?>
diff --git a/interface/web/login/lib/lang/de.lng b/interface/web/login/lib/lang/de.lng
index 6c8472fe7602b3368701a8b38bbfe7823901d22c..dcb94af7168cafcdd4af58137fd246fe8933bb1f 100644
--- a/interface/web/login/lib/lang/de.lng
+++ b/interface/web/login/lib/lang/de.lng
@@ -40,4 +40,5 @@ $wb['otp_code_email_subject_txt'] = 'ISPConfig Login authentication';
 $wb['otp_code_email_template_txt'] = 'Your One time login code is %s' . PHP_EOL . 'This code is valid for 10 minutes.' . PHP_EOL;
 $wb['otp_code_resend_txt'] = 'Request new code';
 $wb['otp_code_email_sent_failed_txt'] = 'Failed sending an email to %s';
+$wb['otp_code_email_sent_wait_txt'] = 'Please wait, re-sending the code is only possible after %s seconds.';
 ?>
diff --git a/interface/web/login/lib/lang/dk.lng b/interface/web/login/lib/lang/dk.lng
index b971e10bd6a514b12714dfed6a8f88babbc84160..37d41ddea1581710d1a24d512d35803ab79e27cc 100644
--- a/interface/web/login/lib/lang/dk.lng
+++ b/interface/web/login/lib/lang/dk.lng
@@ -40,4 +40,5 @@ $wb['otp_code_email_subject_txt'] = 'ISPConfig Login authentication';
 $wb['otp_code_email_template_txt'] = 'Your One time login code is %s' . PHP_EOL . 'This code is valid for 10 minutes.' . PHP_EOL;
 $wb['otp_code_resend_txt'] = 'Request new code';
 $wb['otp_code_email_sent_failed_txt'] = 'Failed sending an email to %s';
+$wb['otp_code_email_sent_wait_txt'] = 'Please wait, re-sending the code is only possible after %s seconds.';
 ?>
diff --git a/interface/web/login/lib/lang/el.lng b/interface/web/login/lib/lang/el.lng
index 578b342c5e26bbae3cb12ff42fe5910e1d7205ff..64a03b36f63e3bc1ec1856d7ac6aa87ce6397788 100644
--- a/interface/web/login/lib/lang/el.lng
+++ b/interface/web/login/lib/lang/el.lng
@@ -40,4 +40,5 @@ $wb['otp_code_email_subject_txt'] = 'ISPConfig Login authentication';
 $wb['otp_code_email_template_txt'] = 'Your One time login code is %s' . PHP_EOL . 'This code is valid for 10 minutes.' . PHP_EOL;
 $wb['otp_code_resend_txt'] = 'Request new code';
 $wb['otp_code_email_sent_failed_txt'] = 'Failed sending an email to %s';
+$wb['otp_code_email_sent_wait_txt'] = 'Please wait, re-sending the code is only possible after %s seconds.';
 ?>
diff --git a/interface/web/login/lib/lang/en.lng b/interface/web/login/lib/lang/en.lng
index 405e320500dba4b3a7e366db25d46fc027b8bcd4..8dd94c6294f3c996fac2b331b7431323b0d7d1c3 100644
--- a/interface/web/login/lib/lang/en.lng
+++ b/interface/web/login/lib/lang/en.lng
@@ -40,4 +40,5 @@ $wb['otp_code_email_subject_txt'] = 'ISPConfig Login authentication';
 $wb['otp_code_email_template_txt'] = 'Your One time login code is %s' . PHP_EOL . 'This code is valid for 10 minutes.' . PHP_EOL;
 $wb['otp_code_resend_txt'] = 'Request new code';
 $wb['otp_code_email_sent_failed_txt'] = 'Failed sending an email to %s';
+$wb['otp_code_email_sent_wait_txt'] = 'Please wait, re-sending the code is only possible after %s seconds.';
 ?>
diff --git a/interface/web/login/lib/lang/es.lng b/interface/web/login/lib/lang/es.lng
index a6da15296e76f729c7232f1daf80cd6cd413c017..dd8bd12bc4910604569c1d6576d2bf4aa54234ea 100644
--- a/interface/web/login/lib/lang/es.lng
+++ b/interface/web/login/lib/lang/es.lng
@@ -40,4 +40,5 @@ $wb['otp_code_email_subject_txt'] = 'ISPConfig Login authentication';
 $wb['otp_code_email_template_txt'] = 'Your One time login code is %s' . PHP_EOL . 'This code is valid for 10 minutes.' . PHP_EOL;
 $wb['otp_code_resend_txt'] = 'Request new code';
 $wb['otp_code_email_sent_failed_txt'] = 'Failed sending an email to %s';
+$wb['otp_code_email_sent_wait_txt'] = 'Please wait, re-sending the code is only possible after %s seconds.';
 ?>
diff --git a/interface/web/login/lib/lang/fi.lng b/interface/web/login/lib/lang/fi.lng
index 496383401b426e00ea6289aa20b8828ff4e2eb7d..9bbcbdddabdd7cf09d666de995cf91194d15abe0 100644
--- a/interface/web/login/lib/lang/fi.lng
+++ b/interface/web/login/lib/lang/fi.lng
@@ -40,4 +40,5 @@ $wb['otp_code_email_subject_txt'] = 'ISPConfig Login authentication';
 $wb['otp_code_email_template_txt'] = 'Your One time login code is %s' . PHP_EOL . 'This code is valid for 10 minutes.' . PHP_EOL;
 $wb['otp_code_resend_txt'] = 'Request new code';
 $wb['otp_code_email_sent_failed_txt'] = 'Failed sending an email to %s';
+$wb['otp_code_email_sent_wait_txt'] = 'Please wait, re-sending the code is only possible after %s seconds.';
 ?>
diff --git a/interface/web/login/lib/lang/fr.lng b/interface/web/login/lib/lang/fr.lng
index e8104aacaaa738ecde30f0292e8f1b86a235c452..dfc04fd184601ab61b2bf3abe8648b5819bd07ea 100644
--- a/interface/web/login/lib/lang/fr.lng
+++ b/interface/web/login/lib/lang/fr.lng
@@ -40,4 +40,5 @@ $wb['otp_code_email_subject_txt'] = 'ISPConfig Login authentication';
 $wb['otp_code_email_template_txt'] = 'Your One time login code is %s' . PHP_EOL . 'This code is valid for 10 minutes.' . PHP_EOL;
 $wb['otp_code_resend_txt'] = 'Request new code';
 $wb['otp_code_email_sent_failed_txt'] = 'Failed sending an email to %s';
+$wb['otp_code_email_sent_wait_txt'] = 'Please wait, re-sending the code is only possible after %s seconds.';
 ?>
diff --git a/interface/web/login/lib/lang/hr.lng b/interface/web/login/lib/lang/hr.lng
index ae20203acdd490204d22a1f467523623fcc7852e..1980c4292dcda9cbe5eef922e48e1c540b1e29d3 100644
--- a/interface/web/login/lib/lang/hr.lng
+++ b/interface/web/login/lib/lang/hr.lng
@@ -40,4 +40,5 @@ $wb['otp_code_email_subject_txt'] = 'ISPConfig Login authentication';
 $wb['otp_code_email_template_txt'] = 'Your One time login code is %s' . PHP_EOL . 'This code is valid for 10 minutes.' . PHP_EOL;
 $wb['otp_code_resend_txt'] = 'Request new code';
 $wb['otp_code_email_sent_failed_txt'] = 'Failed sending an email to %s';
+$wb['otp_code_email_sent_wait_txt'] = 'Please wait, re-sending the code is only possible after %s seconds.';
 ?>
diff --git a/interface/web/login/lib/lang/hu.lng b/interface/web/login/lib/lang/hu.lng
index f8ad853a4888c3401ff9c1e7249ec834cd20a3ef..99e2ca769bcc07b6de8534090e36af5feac6003b 100644
--- a/interface/web/login/lib/lang/hu.lng
+++ b/interface/web/login/lib/lang/hu.lng
@@ -40,4 +40,5 @@ $wb['otp_code_email_subject_txt'] = 'ISPConfig Login authentication';
 $wb['otp_code_email_template_txt'] = 'Your One time login code is %s' . PHP_EOL . 'This code is valid for 10 minutes.' . PHP_EOL;
 $wb['otp_code_resend_txt'] = 'Request new code';
 $wb['otp_code_email_sent_failed_txt'] = 'Failed sending an email to %s';
+$wb['otp_code_email_sent_wait_txt'] = 'Please wait, re-sending the code is only possible after %s seconds.';
 ?>
diff --git a/interface/web/login/lib/lang/id.lng b/interface/web/login/lib/lang/id.lng
index fb0ba69e37b12c79a359d79ac737e37372dd54a6..615357f654f6b47fe4dc61eda6c32c2c0f88d1db 100644
--- a/interface/web/login/lib/lang/id.lng
+++ b/interface/web/login/lib/lang/id.lng
@@ -40,4 +40,5 @@ $wb['otp_code_email_subject_txt'] = 'ISPConfig Login authentication';
 $wb['otp_code_email_template_txt'] = 'Your One time login code is %s' . PHP_EOL . 'This code is valid for 10 minutes.' . PHP_EOL;
 $wb['otp_code_resend_txt'] = 'Request new code';
 $wb['otp_code_email_sent_failed_txt'] = 'Failed sending an email to %s';
+$wb['otp_code_email_sent_wait_txt'] = 'Please wait, re-sending the code is only possible after %s seconds.';
 ?>
diff --git a/interface/web/login/lib/lang/it.lng b/interface/web/login/lib/lang/it.lng
index 4ea0a12f4b215aa13507d990a62638fc08187647..df498e978acc76c0f12db9149b0ab5891925a867 100644
--- a/interface/web/login/lib/lang/it.lng
+++ b/interface/web/login/lib/lang/it.lng
@@ -40,4 +40,5 @@ $wb['otp_code_email_subject_txt'] = 'ISPConfig Login authentication';
 $wb['otp_code_email_template_txt'] = 'Your One time login code is %s' . PHP_EOL . 'This code is valid for 10 minutes.' . PHP_EOL;
 $wb['otp_code_resend_txt'] = 'Request new code';
 $wb['otp_code_email_sent_failed_txt'] = 'Failed sending an email to %s';
+$wb['otp_code_email_sent_wait_txt'] = 'Please wait, re-sending the code is only possible after %s seconds.';
 ?>
diff --git a/interface/web/login/lib/lang/ja.lng b/interface/web/login/lib/lang/ja.lng
index 8ec65a03e355b74b55d97902cd4a287ebd43e6fe..bff26e9d83826f74edf744190f3a2737c0a72885 100644
--- a/interface/web/login/lib/lang/ja.lng
+++ b/interface/web/login/lib/lang/ja.lng
@@ -40,4 +40,5 @@ $wb['otp_code_email_subject_txt'] = 'ISPConfig Login authentication';
 $wb['otp_code_email_template_txt'] = 'Your One time login code is %s' . PHP_EOL . 'This code is valid for 10 minutes.' . PHP_EOL;
 $wb['otp_code_resend_txt'] = 'Request new code';
 $wb['otp_code_email_sent_failed_txt'] = 'Failed sending an email to %s';
+$wb['otp_code_email_sent_wait_txt'] = 'Please wait, re-sending the code is only possible after %s seconds.';
 ?>
diff --git a/interface/web/login/lib/lang/nl.lng b/interface/web/login/lib/lang/nl.lng
index b946fd7dad839b9eda23b41bfe9edfb637294485..453aae6fac9bdc7ef6646a2fcd9e6db23c2f67f7 100644
--- a/interface/web/login/lib/lang/nl.lng
+++ b/interface/web/login/lib/lang/nl.lng
@@ -40,4 +40,5 @@ $wb['otp_code_email_subject_txt'] = 'ISPConfig Login authenticatie';
 $wb['otp_code_email_template_txt'] = 'Uw eenmalige login code is %s' . PHP_EOL . 'Deze code is geldig voor 10 minuten.' . PHP_EOL;
 $wb['otp_code_resend_txt'] = 'Aanvragen nieuwe code';
 $wb['otp_code_email_sent_failed_txt'] = 'Verzenden van email naar %s is mislukt.';
+$wb['otp_code_email_sent_wait_txt'] = 'Please wait, re-sending the code is only possible after %s seconds.';
 ?>
diff --git a/interface/web/login/lib/lang/pl.lng b/interface/web/login/lib/lang/pl.lng
index 2a037016f775bca290ee6d26b849c5d45eb3dcf9..f6937205425592ecc92a2903e5ca38fffc674404 100644
--- a/interface/web/login/lib/lang/pl.lng
+++ b/interface/web/login/lib/lang/pl.lng
@@ -40,4 +40,5 @@ $wb['otp_code_email_subject_txt'] = 'ISPConfig Login authentication';
 $wb['otp_code_email_template_txt'] = 'Your One time login code is %s' . PHP_EOL . 'This code is valid for 10 minutes.' . PHP_EOL;
 $wb['otp_code_resend_txt'] = 'Request new code';
 $wb['otp_code_email_sent_failed_txt'] = 'Failed sending an email to %s';
+$wb['otp_code_email_sent_wait_txt'] = 'Please wait, re-sending the code is only possible after %s seconds.';
 ?>
diff --git a/interface/web/login/lib/lang/pt.lng b/interface/web/login/lib/lang/pt.lng
index b7eb8a26632559743a6217c6b86340e06c59c4d6..fd453844ea22bee3cf366331f3135564623bbc38 100644
--- a/interface/web/login/lib/lang/pt.lng
+++ b/interface/web/login/lib/lang/pt.lng
@@ -40,4 +40,5 @@ $wb['otp_code_email_subject_txt'] = 'ISPConfig Login authentication';
 $wb['otp_code_email_template_txt'] = 'Your One time login code is %s' . PHP_EOL . 'This code is valid for 10 minutes.' . PHP_EOL;
 $wb['otp_code_resend_txt'] = 'Request new code';
 $wb['otp_code_email_sent_failed_txt'] = 'Failed sending an email to %s';
+$wb['otp_code_email_sent_wait_txt'] = 'Please wait, re-sending the code is only possible after %s seconds.';
 ?>
diff --git a/interface/web/login/lib/lang/ro.lng b/interface/web/login/lib/lang/ro.lng
index 21ba4da975d9150a356ebdd10ac3ef717a504064..94950d6c069ab7652e9f75d7529d0d0bfa74cb33 100644
--- a/interface/web/login/lib/lang/ro.lng
+++ b/interface/web/login/lib/lang/ro.lng
@@ -40,4 +40,5 @@ $wb['otp_code_email_subject_txt'] = 'ISPConfig Login authentication';
 $wb['otp_code_email_template_txt'] = 'Your One time login code is %s' . PHP_EOL . 'This code is valid for 10 minutes.' . PHP_EOL;
 $wb['otp_code_resend_txt'] = 'Request new code';
 $wb['otp_code_email_sent_failed_txt'] = 'Failed sending an email to %s';
+$wb['otp_code_email_sent_wait_txt'] = 'Please wait, re-sending the code is only possible after %s seconds.';
 ?>
diff --git a/interface/web/login/lib/lang/ru.lng b/interface/web/login/lib/lang/ru.lng
index e79ac35f10a5e237a54af412e17f76c6daa5ca39..999723c2d6b378f775a7435d19fb2f1a7616f4a8 100644
--- a/interface/web/login/lib/lang/ru.lng
+++ b/interface/web/login/lib/lang/ru.lng
@@ -40,4 +40,5 @@ $wb['otp_code_email_subject_txt'] = 'ISPConfig Login authentication';
 $wb['otp_code_email_template_txt'] = 'Your One time login code is %s' . PHP_EOL . 'This code is valid for 10 minutes.' . PHP_EOL;
 $wb['otp_code_resend_txt'] = 'Request new code';
 $wb['otp_code_email_sent_failed_txt'] = 'Failed sending an email to %s';
+$wb['otp_code_email_sent_wait_txt'] = 'Please wait, re-sending the code is only possible after %s seconds.';
 ?>
diff --git a/interface/web/login/lib/lang/se.lng b/interface/web/login/lib/lang/se.lng
index 04d81344e26f680a2b1373dfff683499baa5184d..db0aeba05ecba8c39d72a3858dd2981a5a0489e7 100644
--- a/interface/web/login/lib/lang/se.lng
+++ b/interface/web/login/lib/lang/se.lng
@@ -40,4 +40,5 @@ $wb['otp_code_email_subject_txt'] = 'ISPConfig Login authentication';
 $wb['otp_code_email_template_txt'] = 'Your One time login code is %s' . PHP_EOL . 'This code is valid for 10 minutes.' . PHP_EOL;
 $wb['otp_code_resend_txt'] = 'Request new code';
 $wb['otp_code_email_sent_failed_txt'] = 'Failed sending an email to %s';
+$wb['otp_code_email_sent_wait_txt'] = 'Please wait, re-sending the code is only possible after %s seconds.';
 ?>
diff --git a/interface/web/login/lib/lang/sk.lng b/interface/web/login/lib/lang/sk.lng
index 28033ff210774f0598f59dec7fb0cebf25ad546a..20ed8f74a79446c9e33e8f834276685dabbd3e09 100644
--- a/interface/web/login/lib/lang/sk.lng
+++ b/interface/web/login/lib/lang/sk.lng
@@ -40,4 +40,5 @@ $wb['otp_code_email_subject_txt'] = 'ISPConfig Login authentication';
 $wb['otp_code_email_template_txt'] = 'Your One time login code is %s' . PHP_EOL . 'This code is valid for 10 minutes.' . PHP_EOL;
 $wb['otp_code_resend_txt'] = 'Request new code';
 $wb['otp_code_email_sent_failed_txt'] = 'Failed sending an email to %s';
+$wb['otp_code_email_sent_wait_txt'] = 'Please wait, re-sending the code is only possible after %s seconds.';
 ?>
diff --git a/interface/web/login/lib/lang/tr.lng b/interface/web/login/lib/lang/tr.lng
index 47be8107b64649d44f42124388140a0a0f465ef6..f30f1fb35440cb52be0ab93803ccd10239acb32e 100644
--- a/interface/web/login/lib/lang/tr.lng
+++ b/interface/web/login/lib/lang/tr.lng
@@ -40,4 +40,5 @@ $wb['otp_code_email_subject_txt'] = 'ISPConfig Login authentication';
 $wb['otp_code_email_template_txt'] = 'Your One time login code is %s' . PHP_EOL . 'This code is valid for 10 minutes.' . PHP_EOL;
 $wb['otp_code_resend_txt'] = 'Request new code';
 $wb['otp_code_email_sent_failed_txt'] = 'Failed sending an email to %s';
+$wb['otp_code_email_sent_wait_txt'] = 'Please wait, re-sending the code is only possible after %s seconds.';
 ?>
diff --git a/interface/web/login/otp.php b/interface/web/login/otp.php
index d9788c4b62bf70a27b5bc06b83304b2b8b7b2551..d149714cc83abb59a24b4bf55e41dbbdd4874646 100644
--- a/interface/web/login/otp.php
+++ b/interface/web/login/otp.php
@@ -77,7 +77,7 @@ function finish_2fa_success($msg = '') {
 if(isset($_POST['code']) && strlen($_POST['code']) == $otp_recovery_code_length) {
 	//* TODO Recovery code handling
 
-	$user = $app->db->queryOneRecord('SELECT otp_attempts, otp_recovery FROM sys_user WHERE userid = ?',$_SESSION['s_pending']['user']['userid']);
+	$user = $app->db->queryOneRecord('SELECT otp_attempts, otp_recovery FROM sys_user WHERE userid = ?', $_SESSION['s_pending']['user']['userid']);
 
 	//* We allow one more try to enter recovery code
 	if($user['otp_attempts'] > $max_global_code_retry + 1) {
@@ -103,7 +103,7 @@ if($_SESSION['otp']['type'] == 'email') {
 
 	if(isset($_POST['code']) && strlen($_POST['code']) == $code_length && isset($_SESSION['otp']['code_hash'])) {
 
-		$user = $app->db->queryOneRecord('SELECT otp_attempts FROM sys_user WHERE userid = ?',$_SESSION['s_pending']['user']['userid']);
+		$user = $app->db->queryOneRecord('SELECT otp_attempts FROM sys_user WHERE userid = ?', $_SESSION['s_pending']['user']['userid']);
 
 		//* Check if we reached limits
 		if($_SESSION['otp']['sent'] > $max_code_resend
@@ -127,28 +127,7 @@ if($_SESSION['otp']['type'] == 'email') {
 	}
 
 	// Send code via email.
-	if(!isset($_SESSION['otp']['sent']) || $_GET['action'] == 'resend') {
-		// Generate new code
-		$new_otp_code = random_int(100000, 999999);
-		$_SESSION['otp']['code_hash'] = password_hash($new_otp_code, PASSWORD_DEFAULT);
-		//$_SESSION['otp']['code_debug'] = $new_otp_code; # for DEBUG only.
-		$_SESSION['otp']['starttime'] = time();
-
-		// Ensure that code is not sent too often
-		if(isset($_SESSION['otp']['sent']) && $_SESSION['otp']['sent'] > $max_code_resend) {
-			$app->error('Code resend limit reached', 'index.php');
-		}
-
-		$app->uses('functions');
-		$app->uses('getconf');
-		$server_config_array = $app->getconf->get_global_config();
-
-		$app->uses('getconf,ispcmail');
-		$mail_config = $server_config_array['mail'];
-		if($mail_config['smtp_enabled'] == 'y') {
-			$mail_config['use_smtp'] = true;
-			$app->ispcmail->setOptions($mail_config);
-		}
+	if (!isset($_SESSION['otp']['sent']) || $_GET['action'] == 'resend') {
 
 		$sys_user = $app->db->queryOneRecord('SELECT otp_data FROM sys_user WHERE userid = ?', $_SESSION['s_pending']['user']['userid']);
 		$data = json_decode($sys_user['otp_data'], TRUE);
@@ -167,25 +146,63 @@ if($_SESSION['otp']['type'] == 'email') {
 		  }
 		}
 
-		$app->ispcmail->setSender($mail_config['admin_mail'], $mail_config['admin_name']);
-		$app->ispcmail->setSubject($wb['otp_code_email_subject_txt']);
-		$app->ispcmail->setMailText(sprintf($wb['otp_code_email_template_txt'], $new_otp_code));
-		$send_result = $app->ispcmail->send($email_to);
-		$app->ispcmail->finish();
+		$mail_otp_code_retry_timeout = 30;
+		if (isset($_SESSION['otp']['starttime']) && $_SESSION['otp']['starttime'] > time() - $mail_otp_code_retry_timeout) {
+			$token_sent_message = sprintf($wb['otp_code_email_sent_wait_txt'], $mail_otp_code_retry_timeout);
+		}
+		else {
 
-		if ($send_result) {
+			// Generate new code
+			$new_otp_code = random_int(100000, 999999);
+			$_SESSION['otp']['code_hash'] = password_hash($new_otp_code, PASSWORD_DEFAULT);
+			//$_SESSION['otp']['code_debug'] = $new_otp_code; # for DEBUG only.
+			$_SESSION['otp']['starttime'] = time();
 
-			// Increase sent counter.
-			if(!isset($_SESSION['otp']['sent'])) {
-				$_SESSION['otp']['sent'] = 1;
-			} else {
-				$_SESSION['otp']['sent']++;
+			// Ensure that code is not sent too often
+			if(isset($_SESSION['otp']['sent']) && $_SESSION['otp']['sent'] > $max_code_resend) {
+				$app->error('Code resend limit reached', 'index.php');
 			}
 
-			$token_sent_message = $wb['otp_code_email_sent_txt'] . ' ' . $email_to;
-		}
-		else {
-			$token_sent_message = sprintf($wb['otp_code_email_sent_failed_txt'], $email_to);
+			$app->uses('functions');
+			$app->uses('getconf');
+			$server_config_array = $app->getconf->get_global_config();
+
+			$app->uses('getconf,ispcmail');
+			$mail_config = $server_config_array['mail'];
+			if($mail_config['smtp_enabled'] == 'y') {
+				$mail_config['use_smtp'] = true;
+				$app->ispcmail->setOptions($mail_config);
+			}
+
+			$clientuser = $app->db->queryOneRecord('SELECT email FROM sys_user u LEFT JOIN client c ON (u.client_id=c.client_id) WHERE u.userid = ?', $_SESSION['s_pending']['user']['userid']);
+			if (!empty($clientuser['email'])) {
+				$email_to = $clientuser['email'];
+			}
+			else {
+				// Admin users are not related to a client, thus use the globally configured email address.
+				$email_to = $mail_config['admin_mail'];
+			}
+
+			$app->ispcmail->setSender($mail_config['admin_mail'], $mail_config['admin_name']);
+			$app->ispcmail->setSubject($wb['otp_code_email_subject_txt']);
+			$app->ispcmail->setMailText(sprintf($wb['otp_code_email_template_txt'], $new_otp_code));
+			$send_result = $app->ispcmail->send($email_to);
+			$app->ispcmail->finish();
+
+			if ($send_result) {
+
+				// Increase sent counter.
+				if(!isset($_SESSION['otp']['sent'])) {
+					$_SESSION['otp']['sent'] = 1;
+				} else {
+					$_SESSION['otp']['sent']++;
+				}
+
+				$token_sent_message = $wb['otp_code_email_sent_txt'] . ' ' . $email_to;
+			}
+			else {
+				$token_sent_message = sprintf($wb['otp_code_email_sent_failed_txt'], $email_to);
+			}
 		}
 	}
 
diff --git a/interface/web/mail/templates/mail_user_mailbox_edit.htm b/interface/web/mail/templates/mail_user_mailbox_edit.htm
index 170ab15db0127ef7797ec7638fa4b98784668d43..4b47b9ecc55d94674943a91cd55ca70e613bc700 100644
--- a/interface/web/mail/templates/mail_user_mailbox_edit.htm
+++ b/interface/web/mail/templates/mail_user_mailbox_edit.htm
@@ -11,6 +11,11 @@
                         <div class='input-group-field'>
 							<select name="email_domain" id="email_domain" class="form-control" style="height:50px;min-width:170px;">{tmpl_var name='email_domain'}</select>
                         </div>
+                        <div class="input-group-field">
+                          <a class="btn btn-default formbutton-narrow" href="javascript: navigator.clipboard.writeText(document.getElementById('email_local_part').value + '@' + document.getElementById('email_domain').value);" title="">i
+                            <span class="fa fa-clone"></span>
+                          </a>
+                        </div>
                     </div>
 				</div>
             </div>
diff --git a/interface/web/sites/templates/shell_user_edit.htm b/interface/web/sites/templates/shell_user_edit.htm
index c1c23965f14caa87033e9fc42c2a0185b7e33311..e96986a9fd3edccb7aa0d57867f9104eef9e1875 100644
--- a/interface/web/sites/templates/shell_user_edit.htm
+++ b/interface/web/sites/templates/shell_user_edit.htm
@@ -17,7 +17,11 @@
                 <div class="col-sm-9">
 					<div class="input-group">
 						<span class="input-group-addon" id="username-desc">{tmpl_var name='username_prefix'}</span>
-						<input type="text" name="username" id="username" value="{tmpl_var name='username'}" class="form-control" aria-describedby="username-desc" />
+						<input type="text" name="username" id="username" value="{tmpl_var name='username'}" class="form-control" aria-describedby="username-desc" style="width: 90%" />
+						<a class="btn btn-default formbutton-narrow" href="javascript: navigator.clipboard.writeText(document.getElementById('username-desc').innerText + document.getElementById('username').value);" title="{tmpl_var name='copy_to_clipboard_txt'}">
+							<span class="fa fa-clone"></span>
+						</a>
+
 					</div>
 				</div>
             </div>
diff --git a/interface/web/themes/default/assets/stylesheets/ispconfig.css b/interface/web/themes/default/assets/stylesheets/ispconfig.css
index b614bebdf5ed1fe4e60fca4a4b1ba4e59e6fb924..03beca183659047bd4632f7db2b425b127c93549 100644
--- a/interface/web/themes/default/assets/stylesheets/ispconfig.css
+++ b/interface/web/themes/default/assets/stylesheets/ispconfig.css
@@ -115,7 +115,7 @@ body {
     padding: 0 12px;
     height: 70px;
     border-bottom-style: solid;
-    botder-bottom-width: 2px;
+    border-bottom-width: 1px;
     transition: all ease 500ms; }
   #main-navigation .icon {
     font-size: 32px; }
diff --git a/server/lib/classes/cron.d/300-quota_notify.inc.php b/server/lib/classes/cron.d/300-quota_notify.inc.php
index ac7ae0aa5c70fab9c8e539145f558c950d174563..e7c13ce09afc404f8b5216926d4b3972b3f738d0 100644
--- a/server/lib/classes/cron.d/300-quota_notify.inc.php
+++ b/server/lib/classes/cron.d/300-quota_notify.inc.php
@@ -90,7 +90,7 @@ class cronjob_quota_notify extends cronjob {
 							$app->log('Traffic quota for '.$rec['domain'].' exceeded.', LOGLEVEL_DEBUG);
 						}
 						//* Send traffic notifications
-						if($rec['traffic_quota_lock'] != 'y' && ($web_config['overtraffic_notify_admin'] == 'y' || $web_config['overtraffic_notify_client'] == 'y')) {
+						if($rec['traffic_quota_lock'] != 'y' && ($web_config['overtraffic_notify_admin'] == 'y' || $web_config['overtraffic_notify_reseller'] == 'y' || $web_config['overtraffic_notify_client'] == 'y')) {
 
 							$placeholders = array('{domain}' => $rec['domain'],
 								'{admin_mail}' => ($global_config['admin_mail'] != ''? $global_config['admin_mail'] : 'root'),
@@ -105,6 +105,18 @@ class cronjob_quota_notify extends cronjob {
 								$recipients[] = $global_config['admin_mail'];
 							}
 
+							//* Send email to reseller
+							if($web_config['overtraffic_notify_reseller'] == 'y') {
+								$client_group_id = $rec["sys_groupid"];
+								$app->db->queryOneRecord("SELECT parent_client_id FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = ?", $client_group_id);
+								if($client['parent_client_id'] > 0) {
+									$reseller = $app->db->queryOneRecord("SELECT email FROM client WHERE client_id = ?", $client['parent_client_id']);
+								}
+								if($reseller['email'] != '') {
+									$recipients[] = $reseller['email'];
+								}
+							}
+
 							//* Send email to client
 							if($web_config['overtraffic_notify_client'] == 'y') {
 								$client_group_id = $rec["sys_groupid"];
@@ -216,7 +228,7 @@ class cronjob_quota_notify extends cronjob {
 						if($rec['last_quota_notification']) $app->dbmaster->datalogUpdate('web_domain', array("last_quota_notification" => null), 'domain_id', $rec['domain_id']);
 
 						// send notification - everything ok again
-						if($rec['last_quota_notification'] && $web_config['overquota_notify_onok'] == 'y' && ($web_config['overquota_notify_admin'] == 'y' || $web_config['overquota_notify_client'] == 'y')) {
+						if($rec['last_quota_notification'] && $web_config['overquota_notify_onok'] == 'y' && ($web_config['overquota_notify_admin'] == 'y' || $web_config['overquota_notify_reseller'] == 'y' || $web_config['overquota_notify_client'] == 'y')) {
 							$placeholders = array('{domain}' => $rec['domain'],
 								'{admin_mail}' => ($global_config['admin_mail'] != ''? $global_config['admin_mail'] : 'root'),
 								'{used}' => $rec['used'],
@@ -231,6 +243,18 @@ class cronjob_quota_notify extends cronjob {
 								$recipients[] = $global_config['admin_mail'];
 							}
 
+							//* Send email to reseller
+							if($web_config['overquota_notify_reseller'] == 'y') {
+								$client_group_id = $rec["sys_groupid"];
+								$app->db->queryOneRecord("SELECT parent_client_id FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = ?", $client_group_id);
+								if($client['parent_client_id'] > 0) {
+									$reseller = $app->db->queryOneRecord("SELECT email FROM client WHERE client_id = ?", $client['parent_client_id']);
+								}
+								if($reseller['email'] != '') {
+									$recipients[] = $reseller['email'];
+								}
+							}
+
 							//* Send email to client
 							if($web_config['overquota_notify_client'] == 'y') {
 								$client_group_id = $rec["sys_groupid"];
@@ -249,7 +273,7 @@ class cronjob_quota_notify extends cronjob {
 						elseif($web_config['overquota_notify_freq'] > 0 && $rec['notified_before'] >= $web_config['overquota_notify_freq']) $send_notification = true;
 
 						//* Send quota notifications
-						if(($web_config['overquota_notify_admin'] == 'y' || $web_config['overquota_notify_client'] == 'y') && $send_notification == true) {
+						if(($web_config['overquota_notify_admin'] == 'y' || $web_config['overquota_notify_reseller'] == 'y' || $web_config['overquota_notify_client'] == 'y') && $send_notification == true) {
 							$app->dbmaster->datalogUpdate('web_domain', array("last_quota_notification" => date('Y-m-d')), 'domain_id', $rec['domain_id']);
 
 							$placeholders = array('{domain}' => $rec['domain'],
@@ -266,6 +290,18 @@ class cronjob_quota_notify extends cronjob {
 								$recipients[] = $global_config['admin_mail'];
 							}
 
+							//* Send email to reseller
+							if($web_config['overquota_notify_reseller'] == 'y') {
+								$client_group_id = $rec["sys_groupid"];
+								$app->db->queryOneRecord("SELECT parent_client_id FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = ?", $client_group_id);
+								if($client['parent_client_id'] > 0) {
+									$reseller = $app->db->queryOneRecord("SELECT email FROM client WHERE client_id = ?", $client['parent_client_id']);
+								}
+								if($reseller['email'] != '') {
+									$recipients[] = $reseller['email'];
+								}
+							}
+
 							//* Send email to client
 							if($web_config['overquota_notify_client'] == 'y') {
 								$client_group_id = $rec["sys_groupid"];
@@ -345,7 +381,7 @@ class cronjob_quota_notify extends cronjob {
 						if($rec['last_quota_notification']) $app->dbmaster->datalogUpdate('mail_user', array("last_quota_notification" => null), 'mailuser_id', $rec['mailuser_id']);
 
 						// send notification - everything ok again
-						if($rec['last_quota_notification'] && $mail_config['overquota_notify_onok'] == 'y' && ($mail_config['overquota_notify_admin'] == 'y' || $mail_config['overquota_notify_client'] == 'y')) {
+						if($rec['last_quota_notification'] && $mail_config['overquota_notify_onok'] == 'y' && ($mail_config['overquota_notify_admin'] == 'y' || $web_config['overquota_notify_reseller'] == 'y' || $mail_config['overquota_notify_client'] == 'y')) {
 							$placeholders = array('{email}' => $rec['email'],
 								'{admin_mail}' => ($global_config['admin_mail'] != ''? $global_config['admin_mail'] : 'root'),
 								'{used}' => $rec['used'],
@@ -359,6 +395,18 @@ class cronjob_quota_notify extends cronjob {
 								$recipients[] = $global_config['admin_mail'];
 							}
 
+							//* Send email to reseller
+							if($web_config['overquota_notify_reseller'] == 'y') {
+								$client_group_id = $rec["sys_groupid"];
+								$app->db->queryOneRecord("SELECT parent_client_id FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = ?", $client_group_id);
+								if($client['parent_client_id'] > 0) {
+									$reseller = $app->db->queryOneRecord("SELECT email FROM client WHERE client_id = ?", $client['parent_client_id']);
+								}
+								if($reseller['email'] != '') {
+									$recipients[] = $reseller['email'];
+								}
+							}
+
 							//* Send email to client
 							if($mail_config['overquota_notify_client'] == 'y') {
 								$client_group_id = $rec["sys_groupid"];
@@ -378,7 +426,7 @@ class cronjob_quota_notify extends cronjob {
 						if(!$rec['last_quota_notification']) $send_notification = true; // not yet notified
 						elseif($mail_config['overquota_notify_freq'] > 0 && $rec['notified_before'] >= $mail_config['overquota_notify_freq']) $send_notification = true;
 
-						if(($mail_config['overquota_notify_admin'] == 'y' || $mail_config['overquota_notify_client'] == 'y') && $send_notification == true) {
+						if(($mail_config['overquota_notify_admin'] == 'y' || $mail_config['overquota_notify_reseller'] == 'y' || $mail_config['overquota_notify_client'] == 'y') && $send_notification == true) {
 							$app->dbmaster->datalogUpdate('mail_user', array("last_quota_notification" => date('Y-m-d')), 'mailuser_id', $rec['mailuser_id']);
 
 							$placeholders = array('{email}' => $rec['email'],
@@ -394,6 +442,18 @@ class cronjob_quota_notify extends cronjob {
 								$recipients[] = $global_config['admin_mail'];
 							}
 
+							//* Send email to reseller
+							if($web_config['overquota_notify_reseller'] == 'y') {
+								$client_group_id = $rec["sys_groupid"];
+								$app->db->queryOneRecord("SELECT parent_client_id FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = ?", $client_group_id);
+								if($client['parent_client_id'] > 0) {
+									$reseller = $app->db->queryOneRecord("SELECT email FROM client WHERE client_id = ?", $client['parent_client_id']);
+								}
+								if($reseller['email'] != '') {
+									$recipients[] = $reseller['email'];
+								}
+							}
+
 							//* Send email to client
 							if($mail_config['overquota_notify_client'] == 'y') {
 								$client_group_id = $rec["sys_groupid"];
@@ -465,7 +525,7 @@ class cronjob_quota_notify extends cronjob {
 
 
 									//* Send quota notifications
-									if(($web_config['overquota_db_notify_admin'] == 'y' || $web_config['overquota_db_notify_client'] == 'y') && $send_notification == true) {
+									if(($web_config['overquota_db_notify_admin'] == 'y' || $web_config['overquota_db_notify_reseller'] == 'y' || $web_config['overquota_db_notify_client'] == 'y') && $send_notification == true) {
 										$app->dbmaster->datalogUpdate('web_database', array("last_quota_notification" => date('Y-m-d')), 'database_id', $rec['database_id']);
 										$placeholders = array(
 											'{database_name}' => $rec['database_name'],
@@ -481,6 +541,18 @@ class cronjob_quota_notify extends cronjob {
 										if($global_config['admin_mail'] != '' && $web_config['overquota_db_notify_admin'] == 'y')
 											$recipients[] = $global_config['admin_mail'];
 
+										//* Send email to reseller
+										if($web_config['overquota_db_notify_reseller'] == 'y') {
+											$client_group_id = $rec["sys_groupid"];
+											$app->db->queryOneRecord("SELECT parent_client_id FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = ?", $client_group_id);
+											if($client['parent_client_id'] > 0) {
+												$reseller = $app->db->queryOneRecord("SELECT email FROM client WHERE client_id = ?", $client['parent_client_id']);
+											}
+											if($reseller['email'] != '') {
+												$recipients[] = $reseller['email'];
+											}
+										}
+										
 										//* Send email to client
 										if($web_config['overquota_db_notify_client'] == 'y' && $client['email'] != '')
 											$recipients[] = $client['email'];
@@ -494,7 +566,7 @@ class cronjob_quota_notify extends cronjob {
 									if($rec['last_quota_notification']) $app->dbmaster->datalogUpdate('web_database', array("last_quota_notification" => null), 'database_id', $rec['database_id']);
 
 									// send notification - everything ok again
-									if($rec['last_quota_notification'] && $web_config['overquota_notify_onok'] == 'y' && ($web_config['overquota_db_notify_admin'] == 'y' || $web_config['overquota_db_notify_client'] == 'y')) {
+									if($rec['last_quota_notification'] && $web_config['overquota_notify_onok'] == 'y' && ($web_config['overquota_db_notify_admin'] == 'y' || $web_config['overquota_db_notify_reseller'] == 'y' || $web_config['overquota_db_notify_client'] == 'y')) {
 										$placeholders = array(
 											'{database_name}' => $rec['database_name'],
 											'{admin_mail}' => ($global_config['admin_mail'] != ''? $global_config['admin_mail'] : 'root'),
@@ -509,6 +581,18 @@ class cronjob_quota_notify extends cronjob {
 										if($global_config['admin_mail'] != '' && $web_config['overquota_db_notify_admin'] == 'y')
 											$recipients[] = $global_config['admin_mail'];
 
+										//* Send email to reseller
+										if($web_config['overquota_db_notify_reseller'] == 'y') {
+											$client_group_id = $rec["sys_groupid"];
+											$app->db->queryOneRecord("SELECT parent_client_id FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = ?", $client_group_id);
+											if($client['parent_client_id'] > 0) {
+												$reseller = $app->db->queryOneRecord("SELECT email FROM client WHERE client_id = ?", $client['parent_client_id']);
+											}
+											if($reseller['email'] != '') {
+												$recipients[] = $reseller['email'];
+											}
+										}
+
 										//* Send email to client
 										if($web_config['overquota_db_notify_client'] == 'y' && $client['email'] != '')
 											$recipients[] = $client['email'];
diff --git a/server/lib/classes/letsencrypt.inc.php b/server/lib/classes/letsencrypt.inc.php
index 6cb0f7927cd23888111359f6eedeb19b1d4eb5fa..e78ef2636e4aca32451fb53053d1d01edfff9442 100644
--- a/server/lib/classes/letsencrypt.inc.php
+++ b/server/lib/classes/letsencrypt.inc.php
@@ -74,7 +74,7 @@ class letsencrypt {
 			$cert_arg = '--fullchain-file ' . escapeshellarg($bundle_file) . ' --cert-file ' . escapeshellarg($cert_file);
 		}
 
-		$cmd = 'R=0 ; C=0 ; ' . $letsencrypt . ' --issue ' . $cmd . ' -w /usr/local/ispconfig/interface/acme --always-force-new-domain-key --keylength 4096; R=$? ; if [[ $R -eq 0 || $R -eq 2 ]] ; then ' . $letsencrypt . ' --install-cert ' . $cmd . ' --key-file ' . escapeshellarg($key_file) . ' ' . $cert_arg . ' --reloadcmd ' . escapeshellarg($this->get_reload_command()) . ' --log ' . escapeshellarg($conf['ispconfig_log_dir'].'/acme.log') . '; C=$? ; fi ; if [[ $C -eq 0 ]] ; then exit $R ; else exit $C  ; fi';
+		$cmd = 'R=0 ; C=0 ; ' . $letsencrypt . ' --issue ' . $cmd . ' -w /usr/local/ispconfig/interface/acme --always-force-new-domain-key --keylength 4096; R=$? ; if [ $R -eq 0 -o $R -eq 2 ] ; then ' . $letsencrypt . ' --install-cert ' . $cmd . ' --key-file ' . escapeshellarg($key_file) . ' ' . $cert_arg . ' --reloadcmd ' . escapeshellarg($this->get_reload_command()) . ' --log ' . escapeshellarg($conf['ispconfig_log_dir'].'/acme.log') . '; C=$? ; fi ; if [ $C -eq 0 ] ; then exit $R ; else exit $C  ; fi';
 
 		return $cmd;
 	}