From 7799762f2a7ac3835f5e1f238ef32143fdeb3455 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?A=2E=20T=C3=A4ffner?= Date: Wed, 20 Jan 2016 10:13:09 +0100 Subject: [PATCH] Mail Security: implemented a SendAs-Permission for aliases and forwardings (by dark alex) NOTE: I did only translate de and en! --- install/sql/incremental/upd_dev_collection.sql | 13 +++++++++++++ install/sql/ispconfig3.sql | 1 + .../tpl/mysql-virtual_sender_login_maps.cf.master | 2 +- interface/web/mail/form/mail_alias.tform.php | 6 ++++++ interface/web/mail/form/mail_forward.tform.php | 6 ++++++ interface/web/mail/lib/lang/de_mail_alias.lng | 2 ++ interface/web/mail/lib/lang/de_mail_forward.lng | 2 ++ interface/web/mail/lib/lang/en_mail_alias.lng | 2 ++ interface/web/mail/lib/lang/en_mail_forward.lng | 2 ++ interface/web/mail/templates/mail_alias_edit.htm | 6 ++++++ interface/web/mail/templates/mail_forward_edit.htm | 6 ++++++ 11 files changed, 47 insertions(+), 1 deletion(-) diff --git a/install/sql/incremental/upd_dev_collection.sql b/install/sql/incremental/upd_dev_collection.sql index e4fd928f7f..e93790ac1b 100644 --- a/install/sql/incremental/upd_dev_collection.sql +++ b/install/sql/incremental/upd_dev_collection.sql @@ -192,3 +192,16 @@ ALTER TABLE `web_domain` ADD `ssl_letsencrypt` enum('n','y') NOT NULL DEFAULT 'n ALTER TABLE `openvz_template` CHANGE `vmguarpages` `vmguarpages` varchar(255) DEFAULT '65536:unlimited'; ALTER TABLE `openvz_template` CHANGE `privvmpages` `privvmpages` varchar(255) DEFAULT '131072:139264'; + + + + +-- Mail Security: Send As Permission by dark alex +-- MS: alter table +ALTER TABLE `mail_forwarding` + ADD COLUMN `allow_send_as` ENUM('n','y') NOT NULL DEFAULT 'n' AFTER `active`; +-- MS: apply defaults +update mail_forwarding set allow_send_as='y' WHERE type = 'alias'; + + + diff --git a/install/sql/ispconfig3.sql b/install/sql/ispconfig3.sql index 672f94bae4..6c54e620c6 100644 --- a/install/sql/ispconfig3.sql +++ b/install/sql/ispconfig3.sql @@ -800,6 +800,7 @@ CREATE TABLE `mail_forwarding` ( `destination` text, `type` enum('alias','aliasdomain','forward','catchall') NOT NULL default 'alias', `active` enum('n','y') NOT NULL DEFAULT 'n', + `allow_send_as` ENUM('n','y') NOT NULL DEFAULT 'n', `greylisting` enum('n','y' ) NOT NULL DEFAULT 'n', PRIMARY KEY (`forwarding_id`), KEY `server_id` (`server_id`,`source`), diff --git a/install/tpl/mysql-virtual_sender_login_maps.cf.master b/install/tpl/mysql-virtual_sender_login_maps.cf.master index ad2d758b08..5b7f144f8c 100644 --- a/install/tpl/mysql-virtual_sender_login_maps.cf.master +++ b/install/tpl/mysql-virtual_sender_login_maps.cf.master @@ -1,5 +1,5 @@ user = {mysql_server_ispconfig_user} password = {mysql_server_ispconfig_password} dbname = {mysql_server_database} -query = SELECT destination FROM mail_forwarding WHERE source = '%s' AND active = 'y' AND type = 'alias' AND server_id = {server_id} UNION SELECT email FROM mail_user WHERE email = '%s' AND disablesmtp = 'n' AND server_id = {server_id}; +query = SELECT destination FROM mail_forwarding WHERE source = '%s' AND active = 'y' AND allow_send_as = 'y' AND server_id = {server_id} UNION SELECT email FROM mail_user WHERE email = '%s' AND disablesmtp = 'n' AND server_id = {server_id}; hosts = {mysql_server_ip} \ No newline at end of file diff --git a/interface/web/mail/form/mail_alias.tform.php b/interface/web/mail/form/mail_alias.tform.php index d85989517d..a004203622 100644 --- a/interface/web/mail/form/mail_alias.tform.php +++ b/interface/web/mail/form/mail_alias.tform.php @@ -124,6 +124,12 @@ $form["tabs"]['alias'] = array ( 'default' => 'y', 'value' => array(0 => 'n', 1 => 'y') ), + 'allow_send_as' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'y', + 'value' => array(1 => 'y', 0 => 'n') + ), 'greylisting' => array ( 'datatype' => 'VARCHAR', 'formtype' => 'CHECKBOX', diff --git a/interface/web/mail/form/mail_forward.tform.php b/interface/web/mail/form/mail_forward.tform.php index 520f18d54b..3c891506b9 100644 --- a/interface/web/mail/form/mail_forward.tform.php +++ b/interface/web/mail/form/mail_forward.tform.php @@ -118,6 +118,12 @@ $form["tabs"]['forward'] = array ( 'default' => 'y', 'value' => array(0 => 'n', 1 => 'y') ), + 'allow_send_as' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'n', + 'value' => array(1 => 'y', 0 => 'n') + ), 'greylisting' => array ( 'datatype' => 'VARCHAR', 'formtype' => 'CHECKBOX', diff --git a/interface/web/mail/lib/lang/de_mail_alias.lng b/interface/web/mail/lib/lang/de_mail_alias.lng index 4115780ad6..211f0065fa 100644 --- a/interface/web/mail/lib/lang/de_mail_alias.lng +++ b/interface/web/mail/lib/lang/de_mail_alias.lng @@ -11,5 +11,7 @@ $wb['duplicate_mailbox_txt'] = 'Es existiert bereits eine E-Mail Konto mit diese $wb['domain_txt'] = 'Domain'; $wb['duplicate_email_alias_txt'] = 'Dieser E-Mail Alias existiert bereits.'; $wb['source_txt'] = 'Alias'; +$wb['send_as_txt'] = 'Senden als'; +$wb['send_as_exp'] = 'Ziel erlauben, den alias als Absender zu benutzen'; $wb['greylisting_txt'] = 'Aktiviere Greylisting'; ?> diff --git a/interface/web/mail/lib/lang/de_mail_forward.lng b/interface/web/mail/lib/lang/de_mail_forward.lng index 15d084526a..f10d789671 100644 --- a/interface/web/mail/lib/lang/de_mail_forward.lng +++ b/interface/web/mail/lib/lang/de_mail_forward.lng @@ -7,5 +7,7 @@ $wb['duplicate_mailbox_txt'] = 'Es existiert bereits ein E-Mail Konto mit dieser $wb['domain_txt'] = 'Domain'; $wb['source_txt'] = 'Quell E-Mail Adresse'; $wb['email_error_isemail'] = 'Bitte geben Sie eine gültige E-Mail Adresse an.'; +$wb['send_as_txt'] = 'Senden als'; +$wb['send_as_exp'] = 'Ziel erlauben, die Adresse als Absender zu nutzen (Nur, falls das Ziel intern ist)'; $wb['greylisting_txt'] = 'Aktiviere greylisting'; ?> diff --git a/interface/web/mail/lib/lang/en_mail_alias.lng b/interface/web/mail/lib/lang/en_mail_alias.lng index 6e9d828196..80326075b0 100644 --- a/interface/web/mail/lib/lang/en_mail_alias.lng +++ b/interface/web/mail/lib/lang/en_mail_alias.lng @@ -11,5 +11,7 @@ $wb["duplicate_mailbox_txt"] = 'There is already a mailbox with this email addre $wb['domain_txt'] = 'Domain'; $wb["duplicate_email_alias_txt"] = 'This email alias does already exist.'; $wb["source_txt"] = 'Alias'; +$wb['send_as_txt'] = 'Send as'; +$wb['send_as_exp'] = 'Allow target to send mail using this alias as origin'; $wb['greylisting_txt'] = 'Enable greylisting'; ?> diff --git a/interface/web/mail/lib/lang/en_mail_forward.lng b/interface/web/mail/lib/lang/en_mail_forward.lng index 07046505de..adab1138ee 100644 --- a/interface/web/mail/lib/lang/en_mail_forward.lng +++ b/interface/web/mail/lib/lang/en_mail_forward.lng @@ -7,5 +7,7 @@ $wb["duplicate_mailbox_txt"] = 'There is already a mailbox with this email addre $wb['domain_txt'] = 'Domain'; $wb["source_txt"] = 'Source Email'; $wb['email_error_isemail'] = 'Please enter a valid email address.'; +$wb['send_as_txt'] = 'Send as'; +$wb['send_as_exp'] = 'Allow target to send mail using this address as origin (if target is internal)'; $wb['greylisting_txt'] = 'Enable greylisting'; ?> diff --git a/interface/web/mail/templates/mail_alias_edit.htm b/interface/web/mail/templates/mail_alias_edit.htm index 07d781c676..04879265f0 100644 --- a/interface/web/mail/templates/mail_alias_edit.htm +++ b/interface/web/mail/templates/mail_alias_edit.htm @@ -27,6 +27,12 @@ {tmpl_var name='active'} +
+ +
+ {tmpl_var name='allow_send_as'} {tmpl_var name='send_as_exp'} +
+
diff --git a/interface/web/mail/templates/mail_forward_edit.htm b/interface/web/mail/templates/mail_forward_edit.htm index c6a2de878c..7c8c8b9cbc 100644 --- a/interface/web/mail/templates/mail_forward_edit.htm +++ b/interface/web/mail/templates/mail_forward_edit.htm @@ -25,6 +25,12 @@ {tmpl_var name='active'}
+
+ +
+ {tmpl_var name='allow_send_as'} {tmpl_var name='send_as_exp'} +
+
-- GitLab