diff --git a/interface/web/mail/mail_domain_edit.php b/interface/web/mail/mail_domain_edit.php
index 3ea60c08f9..e74a60ed94 100644
--- a/interface/web/mail/mail_domain_edit.php
+++ b/interface/web/mail/mail_domain_edit.php
@@ -216,23 +216,25 @@ class page_action extends tform_actions {
}
// load relayhost-values
- $sql = "SELECT relay_host, relay_user, relay_pass FROM mail_domain WHERE domain_id = ?";
- $rec = $app->db->queryOneRecord($sql, $app->functions->intval($_GET['id']));
- $app->tpl->setVar('relay_host', $rec['relay_host'], true);
- $app->tpl->setVar('relay_user', $rec['relay_user'], true);
- $app->tpl->setVar('relay_pass', $rec['relay_pass'], true);
+ if ($client["limit_relayhost"] == 'y') {
+ $sql = "SELECT relay_host, relay_user, relay_pass FROM mail_domain WHERE domain_id = ?";
+ $rec = $app->db->queryOneRecord($sql, $app->functions->intval($_GET['id']));
+ $app->tpl->setVar('relay_host', $rec['relay_host'], true);
+ $app->tpl->setVar('relay_user', $rec['relay_user'], true);
+ $app->tpl->setVar('relay_pass', $rec['relay_pass'], true);
+ }
// load dkim-values
$sql = "SELECT domain, dkim_private, dkim_public, dkim_selector FROM mail_domain WHERE domain_id = ?";
$rec = $app->db->queryOneRecord($sql, $app->functions->intval($_GET['id']));
$dns_key = str_replace(array('-----BEGIN PUBLIC KEY-----','-----END PUBLIC KEY-----',"\r","\n"),'',$rec['dkim_public']);
-
+
$keyparts = str_split('v=DKIM1; t=s; p=' . $dns_key, 200);
array_walk($keyparts, function(&$value, $key) { $value = '"'.$value.'"'; } );
$dkim_txt = implode('', $keyparts);
$dns_record = $rec['dkim_selector'] . '._domainkey.' . $rec['domain'] . '. 3600 IN TXT '.$dkim_txt;
-
+
$app->tpl->setVar('dkim_selector', $rec['dkim_selector'], true);
$app->tpl->setVar('dkim_private', $rec['dkim_private'], true);
$app->tpl->setVar('dkim_public', $rec['dkim_public'], true);
@@ -263,7 +265,7 @@ class page_action extends tform_actions {
if($_SESSION["s"]["user"]["typ"] != 'admin') {
// Get the limits of the client
$client_group_id = $app->functions->intval($_SESSION["s"]["user"]["default_group"]);
- $client = $app->db->queryOneRecord("SELECT client.mail_servers, limit_maildomain, default_mailserver FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = ?", $client_group_id);
+ $client = $app->db->queryOneRecord("SELECT client.mail_servers, limit_maildomain, default_mailserver, limit_relayhost FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = ?", $client_group_id);
// When the record is updated
if($this->id > 0) {
// restore the server ID if the user is not admin and record is edited
@@ -296,7 +298,7 @@ class page_action extends tform_actions {
$this->dataRecord["domain"] = $app->functions->idn_encode($this->dataRecord["domain"]);
$this->dataRecord["domain"] = strtolower($this->dataRecord["domain"]);
}
-
+
//* server_id must be > 0
if(isset($this->dataRecord["server_id"]) && $this->dataRecord["server_id"] < 1) $app->tform->errorMessage .= $app->lng("server_id_0_error_txt");
@@ -305,7 +307,7 @@ class page_action extends tform_actions {
function onAfterInsert() {
global $app, $conf;
-
+
$domain = $app->functions->idn_encode($this->dataRecord["domain"]);
// Spamfilter policy
@@ -319,10 +321,10 @@ class page_action extends tform_actions {
$tmp_domain = $app->db->queryOneRecord("SELECT sys_groupid FROM mail_domain WHERE domain_id = ?", $this->id);
// We create a new record
$insert_data = array(
- "sys_userid" => $_SESSION["s"]["user"]["userid"],
+ "sys_userid" => $_SESSION["s"]["user"]["userid"],
"sys_groupid" => $tmp_domain["sys_groupid"],
- "sys_perm_user" => 'riud',
- "sys_perm_group" => 'riud',
+ "sys_perm_user" => 'riud',
+ "sys_perm_group" => 'riud',
"sys_perm_other" => '',
"server_id" => $this->dataRecord["server_id"],
"priority" => 5,
@@ -350,7 +352,7 @@ class page_action extends tform_actions {
function onBeforeUpdate() {
global $app, $conf;
-
+
$domain = $app->functions->idn_encode($this->dataRecord["domain"]);
//* Check if the server has been changed
@@ -381,7 +383,7 @@ class page_action extends tform_actions {
global $app, $conf;
$domain = $app->functions->idn_encode($this->dataRecord["domain"]);
-
+
// Spamfilter policy
$policy_id = $app->functions->intval($this->dataRecord["policy"]);
$tmp_user = $app->db->queryOneRecord("SELECT id FROM spamfilter_users WHERE email = ?", '@' . $domain);
@@ -393,10 +395,10 @@ class page_action extends tform_actions {
$tmp_domain = $app->db->queryOneRecord("SELECT sys_groupid FROM mail_domain WHERE domain_id = ?", $this->id);
// We create a new record
$insert_data = array(
- "sys_userid" => $_SESSION["s"]["user"]["userid"],
+ "sys_userid" => $_SESSION["s"]["user"]["userid"],
"sys_groupid" => $tmp_domain["sys_groupid"],
- "sys_perm_user" => 'riud',
- "sys_perm_group" => 'riud',
+ "sys_perm_user" => 'riud',
+ "sys_perm_group" => 'riud',
"sys_perm_other" => '',
"server_id" => $this->dataRecord["server_id"],
"priority" => 5,
@@ -447,7 +449,7 @@ class page_action extends tform_actions {
//* Update the mailinglist
$app->db->query("UPDATE mail_mailinglist SET sys_userid = ?, sys_groupid = ? WHERE domain = ?", $client_user_id, $sys_groupid, $this->oldDataRecord['domain']);
-
+
//* Update fetchmail accounts
$fetchmail = $app->db->queryAllRecords("SELECT * FROM mail_get WHERE destination like ?", '%@' . $this->oldDataRecord['domain']);
if(is_array($fetchmail)) {
@@ -456,7 +458,7 @@ class page_action extends tform_actions {
$app->db->datalogUpdate('mail_get', array("destination" => $destination, "sys_userid" => $client_user_id, "sys_groupid" => $sys_groupid), 'mailget_id', $rec['mailget_id']);
}
}
-
+
//* Delete the old spamfilter record
$tmp = $app->db->queryOneRecord("SELECT id FROM spamfilter_users WHERE email = ?", '@' . $this->oldDataRecord["domain"]);
$app->db->datalogDelete('spamfilter_users', 'id', $tmp["id"]);
@@ -467,10 +469,10 @@ class page_action extends tform_actions {
//* update dns-record when the dkim record was changed
// NOTE: only if the domain-name was not changed
if ( $this->dataRecord['active'] == 'y' && $domain == $this->oldDataRecord['domain'] ) {
- $dkim_active = @($this->dataRecord['dkim'] == 'y') ? true : false;
+ $dkim_active = @($this->dataRecord['dkim'] == 'y') ? true : false;
$selector = @($this->dataRecord['dkim_selector'] != $this->oldDataRecord['dkim_selector']) ? true : false;
$dkim_private = @($this->dataRecord['dkim_private'] != $this->oldDataRecord['dkim_private']) ? true : false;
-
+
$soaDomain = $domain.'.';
while ((!isset($soa) && (substr_count($soaDomain,'.') > 1))) {
$soa = $app->db->queryOneRecord("SELECT id AS zone, sys_userid, sys_groupid, sys_perm_user, sys_perm_group, sys_perm_other, server_id, ttl, serial FROM dns_soa WHERE active = 'Y' AND origin = ?", $soaDomain);
@@ -493,7 +495,7 @@ class page_action extends tform_actions {
$soa_id = $app->functions->intval($soa['zone']);
$serial = $app->validate_dns->increase_serial($soa["serial"]);
$app->db->datalogUpdate('dns_soa', array("serial" => $serial), 'id', $soa_id);
- }
+ }
}
}
@@ -510,8 +512,8 @@ class page_action extends tform_actions {
$app->db->datalogDelete('dns_rr', 'id', $r['id']);
}
}
-
- // also delete a dsn-records with same selector
+
+ // also delete a dsn-records with same selector
$sql = "SELECT * from dns_rr WHERE name ? AND data LIKE 'v=DKIM1%' AND " . $app->tform->getAuthSQL('r');
$rec = $app->db->queryAllRecords($sql, '._domainkey.'.$dataRecord['dkim_selector'].'.', $dataRecord['domain']);
if (is_array($rec))
diff --git a/interface/web/mail/templates/mail_domain_edit.htm b/interface/web/mail/templates/mail_domain_edit.htm
index 676e55f9dc..c024fa023b 100644
--- a/interface/web/mail/templates/mail_domain_edit.htm
+++ b/interface/web/mail/templates/mail_domain_edit.htm
@@ -75,24 +75,26 @@
{tmpl_var name='policy'}
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
+
+
@@ -131,7 +133,7 @@
-
+
@@ -150,11 +152,11 @@
domain_id : domain_id,
dkim_public : dkim_public,
dkim_selector : dkim_selector,
- type : "create_dkim"
+ type : "create_dkim"
}, function(data) {
var dkim_txt = 'v=DKIM1; t=s; p=' + data['dns_record'].replace(/(\r\n|\n|\r)/gm, "");
var dns=data['dkim_selector'] + '._domainkey.' + data['domain'] + '. 3600 IN TXT ' + dkim_txt.match(new RegExp('.{1,' + '200' + '}', 'g')).map(chunk => '"' + chunk + '"').join('');
-
+
$("#dkim_selector").val(data.dkim_selector);
$("#dkim_public").val(data.dkim_public);
$("#dkim_private").val(data.dkim_private);
@@ -162,5 +164,3 @@
});
};
-
-
--
GitLab
From 7010250a07ab3068a1cf6abbb36c63fa8b0e1d0d Mon Sep 17 00:00:00 2001
From: Thom Pol <>
Date: Sun, 7 Mar 2021 22:45:12 +0100
Subject: [PATCH 2/9] Add function to disable per domain relaying globally
(#6088)
---
install/tpl/system.ini.master | 1 +
interface/web/admin/form/system_config.tform.php | 6 ++++++
interface/web/admin/lib/lang/ar_system_config.lng | 1 +
interface/web/admin/lib/lang/bg_system_config.lng | 1 +
interface/web/admin/lib/lang/br_system_config.lng | 1 +
interface/web/admin/lib/lang/ca_system_config.lng | 1 +
interface/web/admin/lib/lang/cz_system_config.lng | 1 +
interface/web/admin/lib/lang/de_system_config.lng | 1 +
interface/web/admin/lib/lang/dk_system_config.lng | 1 +
interface/web/admin/lib/lang/el_system_config.lng | 1 +
interface/web/admin/lib/lang/en_system_config.lng | 4 +---
interface/web/admin/lib/lang/es_system_config.lng | 1 +
interface/web/admin/lib/lang/fi_system_config.lng | 1 +
interface/web/admin/lib/lang/fr_system_config.lng | 1 +
interface/web/admin/lib/lang/hr_system_config.lng | 1 +
interface/web/admin/lib/lang/hu_system_config.lng | 1 +
interface/web/admin/lib/lang/id_system_config.lng | 1 +
interface/web/admin/lib/lang/it_system_config.lng | 1 +
interface/web/admin/lib/lang/ja_system_config.lng | 1 +
interface/web/admin/lib/lang/nl_system_config.lng | 1 +
interface/web/admin/lib/lang/pl_system_config.lng | 1 +
interface/web/admin/lib/lang/pt_system_config.lng | 1 +
interface/web/admin/lib/lang/ro_system_config.lng | 1 +
interface/web/admin/lib/lang/ru_system_config.lng | 1 +
interface/web/admin/lib/lang/se_system_config.lng | 1 +
interface/web/admin/lib/lang/sk_system_config.lng | 1 +
interface/web/admin/lib/lang/tr_system_config.lng | 4 +---
.../web/admin/templates/system_config_mail_edit.htm | 12 +++++++++---
interface/web/mail/mail_domain_edit.php | 8 ++++++++
interface/web/mail/templates/mail_domain_edit.htm | 2 ++
30 files changed, 51 insertions(+), 9 deletions(-)
diff --git a/install/tpl/system.ini.master b/install/tpl/system.ini.master
index bbd78e6b3a..9d53aed778 100644
--- a/install/tpl/system.ini.master
+++ b/install/tpl/system.ini.master
@@ -8,6 +8,7 @@
[mail]
enable_custom_login=n
+show_per_domain_relay_options=n
mailbox_show_autoresponder_tab=y
mailbox_show_mail_filter_tab=y
mailbox_show_custom_rules_tab=y
diff --git a/interface/web/admin/form/system_config.tform.php b/interface/web/admin/form/system_config.tform.php
index 88d0fef26c..50abaf4db7 100644
--- a/interface/web/admin/form/system_config.tform.php
+++ b/interface/web/admin/form/system_config.tform.php
@@ -267,6 +267,12 @@ $form["tabs"]['mail'] = array (
'default' => 'n',
'value' => array(0 => 'n', 1 => 'y')
),
+ 'show_per_domain_relay_options' => array(
+ 'datatype' => 'VARCHAR',
+ 'formtype' => 'CHECKBOX',
+ 'default' => 'n',
+ 'value' => array(0 => 'n', 1 => 'y')
+ ),
'mailbox_show_autoresponder_tab' => array (
'datatype' => 'VARCHAR',
'formtype' => 'CHECKBOX',
diff --git a/interface/web/admin/lib/lang/ar_system_config.lng b/interface/web/admin/lib/lang/ar_system_config.lng
index 7d3df7fbf8..8013ccf673 100644
--- a/interface/web/admin/lib/lang/ar_system_config.lng
+++ b/interface/web/admin/lib/lang/ar_system_config.lng
@@ -51,6 +51,7 @@ $wb['use_loadindicator_txt'] = 'Use Load Indicator';
$wb['f5_to_reload_js_txt'] = 'If you change this, you might have to press F5 to make the browser reload JavaScript libraries or empty your browser cache.';
$wb['client_username_web_check_disabled_txt'] = 'Disable client username check for the word \'web\'.';
$wb['backups_include_into_web_quota_txt'] = 'Include backup files into web quota.';
+$wb['show_per_domain_relay_options_txt'] = 'Show per domain relay options';
$wb['mailbox_show_autoresponder_tab_txt'] = 'Show autoresponder tab in mail account details';
$wb['mailbox_show_mail_filter_tab_txt'] = 'Show mail filter tab in mail account details';
$wb['mailbox_show_custom_rules_tab_txt'] = 'Show custom mailfilter tab in mail account details';
diff --git a/interface/web/admin/lib/lang/bg_system_config.lng b/interface/web/admin/lib/lang/bg_system_config.lng
index f99465e1b6..70edb7bdeb 100644
--- a/interface/web/admin/lib/lang/bg_system_config.lng
+++ b/interface/web/admin/lib/lang/bg_system_config.lng
@@ -51,6 +51,7 @@ $wb['use_loadindicator_txt'] = 'Use Load Indicator';
$wb['f5_to_reload_js_txt'] = 'If you change this, you might have to press F5 to make the browser reload JavaScript libraries or empty your browser cache.';
$wb['client_username_web_check_disabled_txt'] = 'Disable client username check for the word \'web\'.';
$wb['backups_include_into_web_quota_txt'] = 'Include backup files into web quota.';
+$wb['show_per_domain_relay_options_txt'] = 'Show per domain relay options';
$wb['mailbox_show_autoresponder_tab_txt'] = 'Show autoresponder tab in mail account details';
$wb['mailbox_show_mail_filter_tab_txt'] = 'Show mail filter tab in mail account details';
$wb['mailbox_show_custom_rules_tab_txt'] = 'Show custom mailfilter tab in mail account details';
diff --git a/interface/web/admin/lib/lang/br_system_config.lng b/interface/web/admin/lib/lang/br_system_config.lng
index 58ffca080b..9a3ef795ef 100644
--- a/interface/web/admin/lib/lang/br_system_config.lng
+++ b/interface/web/admin/lib/lang/br_system_config.lng
@@ -26,6 +26,7 @@ $wb['webdavuser_prefix_error_regex'] = 'Caractere não permitido para o prefixo
$wb['dblist_phpmyadmin_link_txt'] = 'Link para o PHPMyAdmin';
$wb['enable_custom_login_txt'] = 'Permitir nome de usuário personalizado';
$wb['mailboxlist_webmail_link_txt'] = 'Link para o Webmail';
+$wb['show_per_domain_relay_options_txt'] = 'Show per domain relay options';
$wb['mailbox_show_autoresponder_tab_txt'] = 'Exibir aba de auto-resposta nos detalhes da conta de email';
$wb['mailbox_show_mail_filter_tab_txt'] = 'Exibir aba de filtro de emails nos detalhes da conta de email';
$wb['mailbox_show_custom_rules_tab_txt'] = 'Exibir aba de filtros personalizados de email nos detalhes da conta de email';
diff --git a/interface/web/admin/lib/lang/ca_system_config.lng b/interface/web/admin/lib/lang/ca_system_config.lng
index d8bc0e2d48..f4f55f567a 100644
--- a/interface/web/admin/lib/lang/ca_system_config.lng
+++ b/interface/web/admin/lib/lang/ca_system_config.lng
@@ -26,6 +26,7 @@ $wb['webdavuser_prefix_error_regex'] = 'Char not allowed in webdav user prefix.'
$wb['dblist_phpmyadmin_link_txt'] = 'Link to phpmyadmin in DB list';
$wb['enable_custom_login_txt'] = 'Allow custom login name';
$wb['mailboxlist_webmail_link_txt'] = 'Link to webmail in Mailbox list';
+$wb['show_per_domain_relay_options_txt'] = 'Show per domain relay options';
$wb['mailbox_show_autoresponder_tab_txt'] = 'Show autoresponder tab in mail account details';
$wb['mailbox_show_mail_filter_tab_txt'] = 'Show mail filter tab in mail account details';
$wb['mailbox_show_custom_rules_tab_txt'] = 'Show custom mailfilter tab in mail account details';
diff --git a/interface/web/admin/lib/lang/cz_system_config.lng b/interface/web/admin/lib/lang/cz_system_config.lng
index 7db312097c..1331a11ae8 100644
--- a/interface/web/admin/lib/lang/cz_system_config.lng
+++ b/interface/web/admin/lib/lang/cz_system_config.lng
@@ -48,6 +48,7 @@ $wb['use_combobox_txt'] = 'Použití jQuery UI Combobox';
$wb['use_loadindicator_txt'] = 'Použití indikátoru zatížení';
$wb['f5_to_reload_js_txt'] = 'Pokud vypnete tuto volbu, zřejmě budete muset používat klávesu F5, aby internetový prohlížeč znovu načetl JavaScript knihovny nebo budete muset ručně vyprázdňovat mezipaměť (cache) vašeho internetového prohlížeče.';
$wb['client_username_web_check_disabled_txt'] = 'Disable client username check for the word \'web\'.';
+$wb['show_per_domain_relay_options_txt'] = 'Show per domain relay options';
$wb['mailbox_show_autoresponder_tab_txt'] = 'Ukázat kartu automatická odpověď v podrobnostech u poštovní schránky';
$wb['mailbox_show_mail_filter_tab_txt'] = 'Ukázat kartu poštovní filtry v podrobnostech u poštovní schránky';
$wb['mailbox_show_custom_rules_tab_txt'] = 'Ukázat kartu vlastní pravidla v podrobnostech u poštovní schránky';
diff --git a/interface/web/admin/lib/lang/de_system_config.lng b/interface/web/admin/lib/lang/de_system_config.lng
index 4a862a2d4a..4f62e16e53 100644
--- a/interface/web/admin/lib/lang/de_system_config.lng
+++ b/interface/web/admin/lib/lang/de_system_config.lng
@@ -51,6 +51,7 @@ $wb['f5_to_reload_js_txt'] = 'Wenn Sie den Wert ändern, müssen Sie F5 drücken
$wb['phpmyadmin_url_error_regex'] = 'Falsche phpMyAdmin URL';
$wb['client_username_web_check_disabled_txt'] = 'Deaktiviere die Kunden Benutzernamen Überprüfung für den Begriff web.';
$wb['backups_include_into_web_quota_txt'] = 'Backups in Web Quota hinzuzählen.';
+$wb['show_per_domain_relay_options_txt'] = 'Show per domain relay options';
$wb['mailbox_show_autoresponder_tab_txt'] = 'Zeige Autoresponder Reiter in E-Mail Kontodetails';
$wb['mailbox_show_mail_filter_tab_txt'] = 'Zeige E-Mail Filter Reiter in E-Mail Kontodetails';
$wb['mailbox_show_custom_rules_tab_txt'] = 'Zeige Benutzerregel Reiter in E-Mail Kontodetails';
diff --git a/interface/web/admin/lib/lang/dk_system_config.lng b/interface/web/admin/lib/lang/dk_system_config.lng
index eb96004421..f308bb7286 100644
--- a/interface/web/admin/lib/lang/dk_system_config.lng
+++ b/interface/web/admin/lib/lang/dk_system_config.lng
@@ -48,6 +48,7 @@ $wb['use_combobox_txt'] = 'Brug jQuery UI Combobox';
$wb['use_loadindicator_txt'] = 'Brug Load Indicator';
$wb['f5_to_reload_js_txt'] = 'Hvis du ændrer dette, kan du blive nødt til at trykke på F5 for at browseren genindlæser JavaScript-biblioteker eller tømme browserens cache.';
$wb['client_username_web_check_disabled_txt'] = 'Deaktiver klient-brugernavns check for ordet \'web\'.';
+$wb['show_per_domain_relay_options_txt'] = 'Show per domain relay options';
$wb['mailbox_show_autoresponder_tab_txt'] = 'Vis autoresponder tab i mail kontooplysninger';
$wb['mailbox_show_mail_filter_tab_txt'] = 'Vis mail filter tab i mail kontooplysninger';
$wb['mailbox_show_custom_rules_tab_txt'] = 'Vis custom mailfilter tab i mail kontooplysninger';
diff --git a/interface/web/admin/lib/lang/el_system_config.lng b/interface/web/admin/lib/lang/el_system_config.lng
index 68e10e37fc..a3d622b6b6 100644
--- a/interface/web/admin/lib/lang/el_system_config.lng
+++ b/interface/web/admin/lib/lang/el_system_config.lng
@@ -51,6 +51,7 @@ $wb['use_loadindicator_txt'] = 'Χρήση Load Indicator (ενδεικτή φό
$wb['f5_to_reload_js_txt'] = 'Αν το αλλάξετε, ίσως πρέπει να πατήσετε το F5 για να κάνετε τον φυλλομετρητη να ξαναφορτώσει τις βιβλιοθήκες JavaScript ή να αδείασετε την cache του φυλλομετρητή.';
$wb['client_username_web_check_disabled_txt'] = 'Απενεργοποίηση ελέγχου στο όνομα χρήστη για την λέξη \'web\'.';
$wb['backups_include_into_web_quota_txt'] = 'Include backup files into web quota.';
+$wb['show_per_domain_relay_options_txt'] = 'Show per domain relay options';
$wb['mailbox_show_autoresponder_tab_txt'] = 'Εμφάνιση της καρτέλας Αυτόματης Απάντησης στις λεπτομέρειες του λογαριασμού mail';
$wb['mailbox_show_mail_filter_tab_txt'] = 'Εμφάνιση της καρτέλας Φίλτρα mail στις λεπτομέρειες του λογαριασμού mail';
$wb['mailbox_show_custom_rules_tab_txt'] = 'Εμφάνιση της καρτέλας Προσαρμοσμένοι Κανόνες στις λεπτομέρειες του λογαριασμού mail';
diff --git a/interface/web/admin/lib/lang/en_system_config.lng b/interface/web/admin/lib/lang/en_system_config.lng
index 4493913fb0..8b38c84331 100644
--- a/interface/web/admin/lib/lang/en_system_config.lng
+++ b/interface/web/admin/lib/lang/en_system_config.lng
@@ -26,9 +26,6 @@ $wb['webdavuser_prefix_error_regex'] = 'Char not allowed in webdav user prefix.'
$wb['dblist_phpmyadmin_link_txt'] = 'Link to phpmyadmin in DB list';
$wb['enable_custom_login_txt'] = 'Allow custom login name';
$wb['mailboxlist_webmail_link_txt'] = 'Link to webmail in Mailbox list';
-$wb['mailbox_show_autoresponder_tab_txt'] = 'Show Autoresponder tab in Mailbox detail';
-$wb['mailbox_show_mail_filter_tab_txt'] = 'Show Mail Filter tab in Mailbox detail';
-$wb['mailbox_show_custom_rules_tab_txt'] = 'Show Custom Rules tab in Mailbox detail';
$wb['webmail_url_txt'] = 'Webmail URL';
$wb['mailmailinglist_link_txt'] = 'Link to mailing list in Mailing list list';
$wb['mailmailinglist_url_txt'] = 'Mailing list URL';
@@ -55,6 +52,7 @@ $wb['use_loadindicator_txt'] = 'Use Load Indicator';
$wb['f5_to_reload_js_txt'] = 'If you change this, you might have to press F5 to make the browser reload JavaScript libraries or empty your browser cache.';
$wb['client_username_web_check_disabled_txt'] = 'Disable client username check for the word \'web\'.';
$wb['backups_include_into_web_quota_txt'] = 'Include backup files into web quota.';
+$wb['show_per_domain_relay_options_txt'] = 'Show per domain relay options';
$wb['mailbox_show_autoresponder_tab_txt'] = 'Show autoresponder tab in mail account details';
$wb['mailbox_show_mail_filter_tab_txt'] = 'Show mail filter tab in mail account details';
$wb['mailbox_show_custom_rules_tab_txt'] = 'Show custom mailfilter tab in mail account details';
diff --git a/interface/web/admin/lib/lang/es_system_config.lng b/interface/web/admin/lib/lang/es_system_config.lng
index a001999dd4..1a942ae226 100644
--- a/interface/web/admin/lib/lang/es_system_config.lng
+++ b/interface/web/admin/lib/lang/es_system_config.lng
@@ -34,6 +34,7 @@ $wb['f5_to_reload_js_txt'] = 'Si modifica esto, deberá pulsar F5 para que el ex
$wb['ftpuser_prefix_error_regex'] = 'Carácter no permitido en el prefijo de usuario de FTP.';
$wb['ftpuser_prefix_txt'] = 'Prefijo del usuario de FTP';
$wb['login_link_error_regex'] = 'Enlace incorrecto para el inicio de sesión personalizado';
+$wb['show_per_domain_relay_options_txt'] = 'Show per domain relay options';
$wb['mailbox_show_autoresponder_tab_txt'] = 'Mostrar la pestaña del auto-respondedor en los detalles de la cuenta de correo';
$wb['mailbox_show_custom_rules_tab_txt'] = 'Mostrar la pestaña filtro de correo personalizado en los detalles de la cuenta de correo';
$wb['mailbox_show_mail_filter_tab_txt'] = 'Mostrar la pestaña filtro de correo en los detalles de la cuenta de correo';
diff --git a/interface/web/admin/lib/lang/fi_system_config.lng b/interface/web/admin/lib/lang/fi_system_config.lng
index eb7863fd53..e547669f5c 100644
--- a/interface/web/admin/lib/lang/fi_system_config.lng
+++ b/interface/web/admin/lib/lang/fi_system_config.lng
@@ -51,6 +51,7 @@ $wb['use_loadindicator_txt'] = 'Use Load Indicator';
$wb['f5_to_reload_js_txt'] = 'If you change this, you might have to press F5 to make the browser reload JavaScript libraries or empty your browser cache.';
$wb['client_username_web_check_disabled_txt'] = 'Disable client username check for the word \'web\'.';
$wb['backups_include_into_web_quota_txt'] = 'Include backup files into web quota.';
+$wb['show_per_domain_relay_options_txt'] = 'Show per domain relay options';
$wb['mailbox_show_autoresponder_tab_txt'] = 'Show autoresponder tab in mail account details';
$wb['mailbox_show_mail_filter_tab_txt'] = 'Show mail filter tab in mail account details';
$wb['mailbox_show_custom_rules_tab_txt'] = 'Show custom mailfilter tab in mail account details';
diff --git a/interface/web/admin/lib/lang/fr_system_config.lng b/interface/web/admin/lib/lang/fr_system_config.lng
index cfecf8e27f..1b52bd93d0 100644
--- a/interface/web/admin/lib/lang/fr_system_config.lng
+++ b/interface/web/admin/lib/lang/fr_system_config.lng
@@ -48,6 +48,7 @@ $wb['use_combobox_txt'] = 'Use jQuery UI Combobox';
$wb['use_loadindicator_txt'] = 'Use Load Indicator';
$wb['f5_to_reload_js_txt'] = 'If you change this, you might have to press F5 to make the browser reload JavaScript libraries or empty your browser cache.';
$wb['client_username_web_check_disabled_txt'] = 'Disable client username check for the word ’web’.';
+$wb['show_per_domain_relay_options_txt'] = 'Show per domain relay options';
$wb['mailbox_show_autoresponder_tab_txt'] = 'Show autoresponder tab in mail account details';
$wb['mailbox_show_mail_filter_tab_txt'] = 'Show mail filter tab in mail account details';
$wb['mailbox_show_custom_rules_tab_txt'] = 'Show custom mailfilter tab in mail account details';
diff --git a/interface/web/admin/lib/lang/hr_system_config.lng b/interface/web/admin/lib/lang/hr_system_config.lng
index 3f6486ae53..7e6e88a4a5 100644
--- a/interface/web/admin/lib/lang/hr_system_config.lng
+++ b/interface/web/admin/lib/lang/hr_system_config.lng
@@ -51,6 +51,7 @@ $wb['use_loadindicator_txt'] = 'Use Load Indicator';
$wb['f5_to_reload_js_txt'] = 'If you change this, you might have to press F5 to make the browser reload JavaScript libraries or empty your browser cache.';
$wb['client_username_web_check_disabled_txt'] = 'Disable client username check for the word \'web\'.';
$wb['backups_include_into_web_quota_txt'] = 'Include backup files into web quota.';
+$wb['show_per_domain_relay_options_txt'] = 'Show per domain relay options';
$wb['mailbox_show_autoresponder_tab_txt'] = 'Show autoresponder tab in mail account details';
$wb['mailbox_show_mail_filter_tab_txt'] = 'Show mail filter tab in mail account details';
$wb['mailbox_show_custom_rules_tab_txt'] = 'Show custom mailfilter tab in mail account details';
diff --git a/interface/web/admin/lib/lang/hu_system_config.lng b/interface/web/admin/lib/lang/hu_system_config.lng
index 6b1a29ee46..a489a0ab7d 100644
--- a/interface/web/admin/lib/lang/hu_system_config.lng
+++ b/interface/web/admin/lib/lang/hu_system_config.lng
@@ -51,6 +51,7 @@ $wb['use_loadindicator_txt'] = 'Use Load Indicator';
$wb['f5_to_reload_js_txt'] = 'If you change this, you might have to press F5 to make the browser reload JavaScript libraries or empty your browser cache.';
$wb['client_username_web_check_disabled_txt'] = 'Disable client username check for the word \'web\'.';
$wb['backups_include_into_web_quota_txt'] = 'Include backup files into web quota.';
+$wb['show_per_domain_relay_options_txt'] = 'Show per domain relay options';
$wb['mailbox_show_autoresponder_tab_txt'] = 'Show autoresponder tab in mail account details';
$wb['mailbox_show_mail_filter_tab_txt'] = 'Show mail filter tab in mail account details';
$wb['mailbox_show_custom_rules_tab_txt'] = 'Show custom mailfilter tab in mail account details';
diff --git a/interface/web/admin/lib/lang/id_system_config.lng b/interface/web/admin/lib/lang/id_system_config.lng
index f034f9bd76..adffcb7c5a 100644
--- a/interface/web/admin/lib/lang/id_system_config.lng
+++ b/interface/web/admin/lib/lang/id_system_config.lng
@@ -51,6 +51,7 @@ $wb['use_loadindicator_txt'] = 'Use Load Indicator';
$wb['f5_to_reload_js_txt'] = 'If you change this, you might have to press F5 to make the browser reload JavaScript libraries or empty your browser cache.';
$wb['client_username_web_check_disabled_txt'] = 'Disable client username check for the word \'web\'.';
$wb['backups_include_into_web_quota_txt'] = 'Include backup files into web quota.';
+$wb['show_per_domain_relay_options_txt'] = 'Show per domain relay options';
$wb['mailbox_show_autoresponder_tab_txt'] = 'Show autoresponder tab in mail account details';
$wb['mailbox_show_mail_filter_tab_txt'] = 'Show mail filter tab in mail account details';
$wb['mailbox_show_custom_rules_tab_txt'] = 'Show custom mailfilter tab in mail account details';
diff --git a/interface/web/admin/lib/lang/it_system_config.lng b/interface/web/admin/lib/lang/it_system_config.lng
index 42f878a54d..7e0c71d998 100644
--- a/interface/web/admin/lib/lang/it_system_config.lng
+++ b/interface/web/admin/lib/lang/it_system_config.lng
@@ -48,6 +48,7 @@ $wb['use_combobox_txt'] = 'Use jQuery UI Combobox';
$wb['use_loadindicator_txt'] = 'Use Load Indicator';
$wb['f5_to_reload_js_txt'] = 'If you change this, you might have to press F5 to make the browser reload JavaScript libraries or empty your browser cache.';
$wb['client_username_web_check_disabled_txt'] = 'Disable client username check for the word \'web\'.';
+$wb['show_per_domain_relay_options_txt'] = 'Show per domain relay options';
$wb['mailbox_show_autoresponder_tab_txt'] = 'Show autoresponder tab in mail account details';
$wb['mailbox_show_mail_filter_tab_txt'] = 'Show mail filter tab in mail account details';
$wb['mailbox_show_custom_rules_tab_txt'] = 'Show custom mailfilter tab in mail account details';
diff --git a/interface/web/admin/lib/lang/ja_system_config.lng b/interface/web/admin/lib/lang/ja_system_config.lng
index f50ffb5114..a17551b587 100644
--- a/interface/web/admin/lib/lang/ja_system_config.lng
+++ b/interface/web/admin/lib/lang/ja_system_config.lng
@@ -51,6 +51,7 @@ $wb['use_loadindicator_txt'] = 'Use Load Indicator';
$wb['f5_to_reload_js_txt'] = 'If you change this, you might have to press F5 to make the browser reload JavaScript libraries or empty your browser cache.';
$wb['client_username_web_check_disabled_txt'] = 'Disable client username check for the word \'web\'.';
$wb['backups_include_into_web_quota_txt'] = 'Include backup files into web quota.';
+$wb['show_per_domain_relay_options_txt'] = 'Show per domain relay options';
$wb['mailbox_show_autoresponder_tab_txt'] = 'Show autoresponder tab in mail account details';
$wb['mailbox_show_mail_filter_tab_txt'] = 'Show mail filter tab in mail account details';
$wb['mailbox_show_custom_rules_tab_txt'] = 'Show custom mailfilter tab in mail account details';
diff --git a/interface/web/admin/lib/lang/nl_system_config.lng b/interface/web/admin/lib/lang/nl_system_config.lng
index 4078be986e..08574f6471 100644
--- a/interface/web/admin/lib/lang/nl_system_config.lng
+++ b/interface/web/admin/lib/lang/nl_system_config.lng
@@ -17,6 +17,7 @@ $wb['shelluser_prefix_error_regex'] = 'Char niet toegestaan in shell gebruiker v
$wb['webdavuser_prefix_error_regex'] = 'Char niet toegestaan in webdav gebruiker voorvoegsel.';
$wb['dblist_phpmyadmin_link_txt'] = 'Link naar phpmyadmin in DB lijst';
$wb['mailboxlist_webmail_link_txt'] = 'Link naar webmail in Mailbox lijst';
+$wb['show_per_domain_relay_options_txt'] = 'Show per domain relay options';
$wb['mailbox_show_autoresponder_tab_txt'] = 'Show autoresponder tab in mail account details';
$wb['mailbox_show_mail_filter_tab_txt'] = 'Show mail filter tab in mail account details';
$wb['mailbox_show_custom_rules_tab_txt'] = 'Show custom mailfilter tab in mail account details';
diff --git a/interface/web/admin/lib/lang/pl_system_config.lng b/interface/web/admin/lib/lang/pl_system_config.lng
index c94313bdcb..c32dd70c6c 100644
--- a/interface/web/admin/lib/lang/pl_system_config.lng
+++ b/interface/web/admin/lib/lang/pl_system_config.lng
@@ -51,6 +51,7 @@ $wb['use_loadindicator_txt'] = 'Użyj wskaźnika ładowania';
$wb['f5_to_reload_js_txt'] = 'Jeżeli zmienisz to, możesz potrzebować wcisnąć F5 lub wyczyścić cache aby przeglądarka przeładowała biblioteki JavaScript.';
$wb['client_username_web_check_disabled_txt'] = 'Wyłącz sprawdzanie nazwy klienta w poszukiwaniu słowa -web-.';
$wb['backups_include_into_web_quota_txt'] = 'Include backup files into web quota.';
+$wb['show_per_domain_relay_options_txt'] = 'Show per domain relay options';
$wb['mailbox_show_autoresponder_tab_txt'] = 'Pokaż zakładkę autorespondera w szczegółach konta email.';
$wb['mailbox_show_mail_filter_tab_txt'] = 'Pokaż zakładkę filtra email w szczegółach konta email.';
$wb['mailbox_show_custom_rules_tab_txt'] = 'Pokaż zakładkę własnych filtrów email w szczegółach konta email.';
diff --git a/interface/web/admin/lib/lang/pt_system_config.lng b/interface/web/admin/lib/lang/pt_system_config.lng
index 39e4dc93f2..732e23b7e9 100644
--- a/interface/web/admin/lib/lang/pt_system_config.lng
+++ b/interface/web/admin/lib/lang/pt_system_config.lng
@@ -51,6 +51,7 @@ $wb['use_loadindicator_txt'] = 'Use Load Indicator';
$wb['f5_to_reload_js_txt'] = 'If you change this, you might have to press F5 to make the browser reload JavaScript libraries or empty your browser cache.';
$wb['client_username_web_check_disabled_txt'] = 'Disable client username check for the word \'web\'.';
$wb['backups_include_into_web_quota_txt'] = 'Include backup files into web quota.';
+$wb['show_per_domain_relay_options_txt'] = 'Show per domain relay options';
$wb['mailbox_show_autoresponder_tab_txt'] = 'Show autoresponder tab in mail account details';
$wb['mailbox_show_mail_filter_tab_txt'] = 'Show mail filter tab in mail account details';
$wb['mailbox_show_custom_rules_tab_txt'] = 'Show custom mailfilter tab in mail account details';
diff --git a/interface/web/admin/lib/lang/ro_system_config.lng b/interface/web/admin/lib/lang/ro_system_config.lng
index 2b819a013e..333dbb895e 100644
--- a/interface/web/admin/lib/lang/ro_system_config.lng
+++ b/interface/web/admin/lib/lang/ro_system_config.lng
@@ -51,6 +51,7 @@ $wb['use_loadindicator_txt'] = 'Use Load Indicator';
$wb['f5_to_reload_js_txt'] = 'If you change this, you might have to press F5 to make the browser reload JavaScript libraries or empty your browser cache.';
$wb['client_username_web_check_disabled_txt'] = 'Disable client username check for the word \'web\'.';
$wb['backups_include_into_web_quota_txt'] = 'Include backup files into web quota.';
+$wb['show_per_domain_relay_options_txt'] = 'Show per domain relay options';
$wb['mailbox_show_autoresponder_tab_txt'] = 'Show autoresponder tab in mail account details';
$wb['mailbox_show_mail_filter_tab_txt'] = 'Show mail filter tab in mail account details';
$wb['mailbox_show_custom_rules_tab_txt'] = 'Show custom mailfilter tab in mail account details';
diff --git a/interface/web/admin/lib/lang/ru_system_config.lng b/interface/web/admin/lib/lang/ru_system_config.lng
index 3aee07ff2e..4764b04cad 100644
--- a/interface/web/admin/lib/lang/ru_system_config.lng
+++ b/interface/web/admin/lib/lang/ru_system_config.lng
@@ -51,6 +51,7 @@ $wb['use_loadindicator_txt'] = 'Использовать индикатор за
$wb['f5_to_reload_js_txt'] = 'Если вы измените это, вам, возможно, придется нажать F5, чтобы перезагрузить в браузере JavaScript-библиотеи или очистить кэш браузера.';
$wb['client_username_web_check_disabled_txt'] = 'Отключить проверку логина клиента для слова \'web\'.';
$wb['backups_include_into_web_quota_txt'] = 'Включить резервное копирование файлов в веб-квоту.';
+$wb['show_per_domain_relay_options_txt'] = 'Show per domain relay options';
$wb['mailbox_show_autoresponder_tab_txt'] = 'Показывать вкладку автоответчика в деталях учетной записи электронной почты';
$wb['mailbox_show_mail_filter_tab_txt'] = 'Показывать вкладку почтового фильтра в деталях учетной записи электронной почты';
$wb['mailbox_show_custom_rules_tab_txt'] = 'Показывать вкладку пользовательского почтового фильтра в деталях учетной записи электронной почты';
diff --git a/interface/web/admin/lib/lang/se_system_config.lng b/interface/web/admin/lib/lang/se_system_config.lng
index d075f87509..74be416152 100644
--- a/interface/web/admin/lib/lang/se_system_config.lng
+++ b/interface/web/admin/lib/lang/se_system_config.lng
@@ -51,6 +51,7 @@ $wb['use_loadindicator_txt'] = 'Använd laddningsindikator';
$wb['f5_to_reload_js_txt'] = 'Om du ändrar detta kan du behöva trycka F5 för att ladda om javascript, eller rensa din webbläsarcache.';
$wb['client_username_web_check_disabled_txt'] = 'Disable client username check for the word \'web\'.';
$wb['backups_include_into_web_quota_txt'] = 'Include backup files into web quota.';
+$wb['show_per_domain_relay_options_txt'] = 'Show per domain relay options';
$wb['mailbox_show_autoresponder_tab_txt'] = 'Visa autosvarsfliken vid detaljerna för epostkonto';
$wb['mailbox_show_mail_filter_tab_txt'] = 'Visa epostfilterfliken vid detaljerna för epostkonto';
$wb['mailbox_show_custom_rules_tab_txt'] = 'Show custom mailfilter tab in mail account details';
diff --git a/interface/web/admin/lib/lang/sk_system_config.lng b/interface/web/admin/lib/lang/sk_system_config.lng
index ef4cc3fef9..0ab9904872 100644
--- a/interface/web/admin/lib/lang/sk_system_config.lng
+++ b/interface/web/admin/lib/lang/sk_system_config.lng
@@ -51,6 +51,7 @@ $wb['use_loadindicator_txt'] = 'Use Load Indicator';
$wb['f5_to_reload_js_txt'] = 'If you change this, you might have to press F5 to make the browser reload JavaScript libraries or empty your browser cache.';
$wb['client_username_web_check_disabled_txt'] = 'Disable client username check for the word \'web\'.';
$wb['backups_include_into_web_quota_txt'] = 'Include backup files into web quota.';
+$wb['show_per_domain_relay_options_txt'] = 'Show per domain relay options';
$wb['mailbox_show_autoresponder_tab_txt'] = 'Show autoresponder tab in mail account details';
$wb['mailbox_show_mail_filter_tab_txt'] = 'Show mail filter tab in mail account details';
$wb['mailbox_show_custom_rules_tab_txt'] = 'Show custom mailfilter tab in mail account details';
diff --git a/interface/web/admin/lib/lang/tr_system_config.lng b/interface/web/admin/lib/lang/tr_system_config.lng
index 3bb9c82b0a..5a6e70ce81 100644
--- a/interface/web/admin/lib/lang/tr_system_config.lng
+++ b/interface/web/admin/lib/lang/tr_system_config.lng
@@ -26,9 +26,6 @@ $wb['webdavuser_prefix_error_regex'] = 'Webdav kullanıcısı ön ekinde izin ve
$wb['dblist_phpmyadmin_link_txt'] = 'Veritabanı listesinde phpMyAdmin bağlantısı';
$wb['enable_custom_login_txt'] = 'Özel oturum açma kullanıcı adı kullanılabilsin';
$wb['mailboxlist_webmail_link_txt'] = 'E-posta kutusu listesinde Webmail bağlantısı';
-$wb['mailbox_show_autoresponder_tab_txt'] = 'E-posta hesabı ayrıntılarında otoyanıtlayıcı sekmesi görüntülensin';
-$wb['mailbox_show_mail_filter_tab_txt'] = 'E-posta hesabı ayrıntılarında e-posta süzgeci sekmesi görüntülensin';
-$wb['mailbox_show_custom_rules_tab_txt'] = 'E-posta hesabı ayrıntılarında isteğe bağlı e-posta süzgeci sekmesi görüntülensin';
$wb['webmail_url_txt'] = 'Webmail Adresi';
$wb['mailmailinglist_link_txt'] = 'E-posta Listeleri listesinde E-posta Listesi bağlantısı';
$wb['mailmailinglist_url_txt'] = 'E-posta Listesi Adresi';
@@ -54,6 +51,7 @@ $wb['use_loadindicator_txt'] = 'Yük Göstergesi Kullanılsın';
$wb['f5_to_reload_js_txt'] = 'Bu değer değiştirildiğinde, web tarayıcının JavaScript kitaplıklarını yeniden yüklemesi için F5 tuşuna basmalı ya da web tarayıcının ön belleğini temizlemelisiniz.';
$wb['client_username_web_check_disabled_txt'] = 'Müşteri kullanıcı adında \'web\' sözcüğü denetimi devre dışı bırakılsın.';
$wb['backups_include_into_web_quota_txt'] = 'Yedek dosyaları web kotasına katılsın.';
+$wb['show_per_domain_relay_options_txt'] = 'Show per domain relay options';
$wb['mailbox_show_autoresponder_tab_txt'] = 'E-posta hesabı ayrıntılarında otoyanıtlayıcı sekmesi görüntülensin';
$wb['mailbox_show_mail_filter_tab_txt'] = 'E-posta hesabı ayrıntılarında e-posta süzgeci sekmesi görüntülensin';
$wb['mailbox_show_custom_rules_tab_txt'] = 'E-posta hesabı ayrıntılarında isteğe bağlı e-posta süzgeci sekmesi görüntülensin';
diff --git a/interface/web/admin/templates/system_config_mail_edit.htm b/interface/web/admin/templates/system_config_mail_edit.htm
index af0a7a25ca..00134e6511 100644
--- a/interface/web/admin/templates/system_config_mail_edit.htm
+++ b/interface/web/admin/templates/system_config_mail_edit.htm
@@ -4,6 +4,12 @@
{tmpl_var name='enable_custom_login'}