From 31199e18782daf4083bb6877cb7c1dd39f085bcd Mon Sep 17 00:00:00 2001 From: Jesse Norell <jesse@kci.net> Date: Tue, 12 Jan 2021 16:41:09 -0700 Subject: [PATCH] implement per-domain mail relaying --- install/dist/lib/fedora.lib.php | 56 ++----------------- install/dist/lib/gentoo.lib.php | 3 + install/dist/lib/opensuse.lib.php | 53 ++---------------- install/lib/installer_base.lib.php | 56 ++----------------- .../sql/incremental/upd_dev_collection.sql | 4 ++ install/sql/ispconfig3.sql | 3 + install/tpl/debian_postfix.conf.master | 8 ++- install/tpl/fedora_postfix.conf.master | 8 ++- install/tpl/gentoo_postfix.conf.master | 8 ++- .../mysql-virtual_sender-relayauth.cf.master | 10 ++++ .../mysql-virtual_sender-relayhost.cf.master | 10 ++++ install/tpl/opensuse_postfix.conf.master | 8 ++- interface/web/mail/form/mail_domain.tform.php | 24 ++++++++ .../web/mail/lib/lang/ar_mail_domain.lng | 6 +- .../web/mail/lib/lang/bg_mail_domain.lng | 4 +- .../web/mail/lib/lang/br_mail_domain.lng | 3 + .../web/mail/lib/lang/ca_mail_domain.lng | 4 +- .../web/mail/lib/lang/cz_mail_domain.lng | 3 + .../web/mail/lib/lang/de_mail_domain.lng | 4 +- .../web/mail/lib/lang/dk_mail_domain.lng | 4 +- .../web/mail/lib/lang/el_mail_domain.lng | 4 +- .../web/mail/lib/lang/en_mail_domain.lng | 4 +- .../web/mail/lib/lang/es_mail_domain.lng | 4 +- .../web/mail/lib/lang/fi_mail_domain.lng | 4 +- .../web/mail/lib/lang/fr_mail_domain.lng | 4 +- .../web/mail/lib/lang/hr_mail_domain.lng | 4 +- .../web/mail/lib/lang/hu_mail_domain.lng | 4 +- .../web/mail/lib/lang/id_mail_domain.lng | 4 +- .../web/mail/lib/lang/it_mail_domain.lng | 4 +- .../web/mail/lib/lang/ja_mail_domain.lng | 4 +- .../web/mail/lib/lang/nl_mail_domain.lng | 4 +- .../web/mail/lib/lang/pl_mail_domain.lng | 4 +- .../web/mail/lib/lang/pt_mail_domain.lng | 4 +- .../web/mail/lib/lang/ro_mail_domain.lng | 4 +- .../web/mail/lib/lang/ru_mail_domain.lng | 4 +- .../web/mail/lib/lang/se_mail_domain.lng | 4 +- .../web/mail/lib/lang/sk_mail_domain.lng | 4 +- .../web/mail/lib/lang/tr_mail_domain.lng | 4 +- interface/web/mail/mail_domain_edit.php | 7 +++ .../web/mail/templates/mail_domain_edit.htm | 18 ++++++ 40 files changed, 198 insertions(+), 178 deletions(-) create mode 100644 install/tpl/mysql-virtual_sender-relayauth.cf.master create mode 100644 install/tpl/mysql-virtual_sender-relayhost.cf.master diff --git a/install/dist/lib/fedora.lib.php b/install/dist/lib/fedora.lib.php index 9620bf3561..fdb6c2e717 100644 --- a/install/dist/lib/fedora.lib.php +++ b/install/dist/lib/fedora.lib.php @@ -57,58 +57,12 @@ class installer_dist extends installer_base { $this->error("The postfix configuration directory '$config_dir' does not exist."); } - //* mysql-virtual_domains.cf - $this->process_postfix_config('mysql-virtual_domains.cf'); - - //* mysql-virtual_forwardings.cf - $this->process_postfix_config('mysql-virtual_forwardings.cf'); - - //* mysql-virtual_alias_domains.cf - $this->process_postfix_config('mysql-virtual_alias_domains.cf'); - - //* mysql-virtual_alias_maps.cf - $this->process_postfix_config('mysql-virtual_alias_maps.cf'); - - //* mysql-virtual_mailboxes.cf - $this->process_postfix_config('mysql-virtual_mailboxes.cf'); - - //* mysql-virtual_email2email.cf - $this->process_postfix_config('mysql-virtual_email2email.cf'); - - //* mysql-virtual_transports.cf - $this->process_postfix_config('mysql-virtual_transports.cf'); - - //* mysql-virtual_recipient.cf - $this->process_postfix_config('mysql-virtual_recipient.cf'); - - //* mysql-virtual_sender.cf - $this->process_postfix_config('mysql-virtual_sender.cf'); - - //* mysql-virtual_sender_login_maps.cf - $this->process_postfix_config('mysql-virtual_sender_login_maps.cf'); - - //* mysql-virtual_client.cf - $this->process_postfix_config('mysql-virtual_client.cf'); - - //* mysql-virtual_relaydomains.cf - $this->process_postfix_config('mysql-virtual_relaydomains.cf'); - - //* mysql-virtual_relayrecipientmaps.cf - $this->process_postfix_config('mysql-virtual_relayrecipientmaps.cf'); - - //* mysql-virtual_outgoing_bcc.cf - $this->process_postfix_config('mysql-virtual_outgoing_bcc.cf'); - - //* mysql-virtual_policy_greylist.cf - $this->process_postfix_config('mysql-virtual_policy_greylist.cf'); - - //* mysql-virtual_gids.cf.master - $this->process_postfix_config('mysql-virtual_gids.cf'); - - //* mysql-virtual_uids.cf - $this->process_postfix_config('mysql-virtual_uids.cf'); + //* Install virtual mappings + foreach (glob('tpl/mysql-virtual_*.master') as $filename) { + $this->process_postfix_config( basename($filename, '.master') ); + } - //* mysql-virtual_alias_domains.cf + //* mysql-verify_recipients.cf $this->process_postfix_config('mysql-verify_recipients.cf'); //* postfix-dkim diff --git a/install/dist/lib/gentoo.lib.php b/install/dist/lib/gentoo.lib.php index f719fbee38..1bd58e0c38 100644 --- a/install/dist/lib/gentoo.lib.php +++ b/install/dist/lib/gentoo.lib.php @@ -63,6 +63,9 @@ class installer extends installer_base $this->process_postfix_config( basename($filename, '.master') ); } + //* mysql-verify_recipients.cf + $this->process_postfix_config('mysql-verify_recipients.cf'); + //* Changing mode and group of the new created config files. caselog('chmod o= '.$config_dir.'/mysql-virtual_*.cf* &> /dev/null', __FILE__, __LINE__, 'chmod on mysql-virtual_*.cf*', 'chmod on mysql-virtual_*.cf* failed'); diff --git a/install/dist/lib/opensuse.lib.php b/install/dist/lib/opensuse.lib.php index b9e3a1c575..7332db1699 100644 --- a/install/dist/lib/opensuse.lib.php +++ b/install/dist/lib/opensuse.lib.php @@ -57,55 +57,12 @@ class installer_dist extends installer_base { $this->error("The postfix configuration directory '$config_dir' does not exist."); } - //* mysql-virtual_domains.cf - $this->process_postfix_config('mysql-virtual_domains.cf'); - - //* mysql-virtual_forwardings.cf - $this->process_postfix_config('mysql-virtual_forwardings.cf'); - - //* mysql-virtual_alias_domains.cf - $this->process_postfix_config('mysql-virtual_alias_domains.cf'); - - //* mysql-virtual_alias_maps.cf - $this->process_postfix_config('mysql-virtual_alias_maps.cf'); - - //* mysql-virtual_mailboxes.cf - $this->process_postfix_config('mysql-virtual_mailboxes.cf'); - - //* mysql-virtual_email2email.cf - $this->process_postfix_config('mysql-virtual_email2email.cf'); - - //* mysql-virtual_transports.cf - $this->process_postfix_config('mysql-virtual_transports.cf'); - - //* mysql-virtual_recipient.cf - $this->process_postfix_config('mysql-virtual_recipient.cf'); - - //* mysql-virtual_sender.cf - $this->process_postfix_config('mysql-virtual_sender.cf'); - - //* mysql-virtual_sender_login_maps.cf - $this->process_postfix_config('mysql-virtual_sender_login_maps.cf'); - - //* mysql-virtual_client.cf - $this->process_postfix_config('mysql-virtual_client.cf'); - - //* mysql-virtual_relaydomains.cf - $this->process_postfix_config('mysql-virtual_relaydomains.cf'); - - //* mysql-virtual_relayrecipientmaps.cf - $this->process_postfix_config('mysql-virtual_relayrecipientmaps.cf'); - - //* mysql-virtual_policy_greylist.cf - $this->process_postfix_config('mysql-virtual_policy_greylist.cf'); - - //* mysql-virtual_gids.cf.master - $this->process_postfix_config('mysql-virtual_gids.cf'); - - //* mysql-virtual_uids.cf - $this->process_postfix_config('mysql-virtual_uids.cf'); + //* Install virtual mappings + foreach (glob('tpl/mysql-virtual_*.master') as $filename) { + $this->process_postfix_config( basename($filename, '.master') ); + } - //* mysql-virtual_alias_domains.cf + //* mysql-verify_recipients.cf $this->process_postfix_config('mysql-verify_recipients.cf'); //* postfix-dkim diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php index 688fd32a83..16fe665fca 100644 --- a/install/lib/installer_base.lib.php +++ b/install/lib/installer_base.lib.php @@ -1060,58 +1060,12 @@ class installer_base { $postfix_version = preg_replace('/.*=\s*/', '', $out[0]); unset($out); - //* mysql-virtual_domains.cf - $this->process_postfix_config('mysql-virtual_domains.cf'); - - //* mysql-virtual_forwardings.cf - $this->process_postfix_config('mysql-virtual_forwardings.cf'); - - //* mysql-virtual_alias_domains.cf - $this->process_postfix_config('mysql-virtual_alias_domains.cf'); - - //* mysql-virtual_alias_maps.cf - $this->process_postfix_config('mysql-virtual_alias_maps.cf'); - - //* mysql-virtual_mailboxes.cf - $this->process_postfix_config('mysql-virtual_mailboxes.cf'); - - //* mysql-virtual_email2email.cf - $this->process_postfix_config('mysql-virtual_email2email.cf'); - - //* mysql-virtual_transports.cf - $this->process_postfix_config('mysql-virtual_transports.cf'); - - //* mysql-virtual_recipient.cf - $this->process_postfix_config('mysql-virtual_recipient.cf'); - - //* mysql-virtual_sender.cf - $this->process_postfix_config('mysql-virtual_sender.cf'); - - //* mysql-virtual_sender_login_maps.cf - $this->process_postfix_config('mysql-virtual_sender_login_maps.cf'); - - //* mysql-virtual_client.cf - $this->process_postfix_config('mysql-virtual_client.cf'); - - //* mysql-virtual_relaydomains.cf - $this->process_postfix_config('mysql-virtual_relaydomains.cf'); - - //* mysql-virtual_relayrecipientmaps.cf - $this->process_postfix_config('mysql-virtual_relayrecipientmaps.cf'); - - //* mysql-virtual_outgoing_bcc.cf - $this->process_postfix_config('mysql-virtual_outgoing_bcc.cf'); - - //* mysql-virtual_policy_greylist.cf - $this->process_postfix_config('mysql-virtual_policy_greylist.cf'); - - //* mysql-virtual_gids.cf.master - $this->process_postfix_config('mysql-virtual_gids.cf'); - - //* mysql-virtual_uids.cf - $this->process_postfix_config('mysql-virtual_uids.cf'); + //* Install virtual mappings + foreach (glob('tpl/mysql-virtual_*.master') as $filename) { + $this->process_postfix_config( basename($filename, '.master') ); + } - //* mysql-virtual_alias_domains.cf + //* mysql-verify_recipients.cf $this->process_postfix_config('mysql-verify_recipients.cf'); // test if lmtp if available diff --git a/install/sql/incremental/upd_dev_collection.sql b/install/sql/incremental/upd_dev_collection.sql index 90f8139c60..02a588cc88 100644 --- a/install/sql/incremental/upd_dev_collection.sql +++ b/install/sql/incremental/upd_dev_collection.sql @@ -7,3 +7,7 @@ ALTER TABLE mail_access DROP CONSTRAINT `server_id`; SET SESSION old_alter_table=1; ALTER IGNORE TABLE mail_access ADD UNIQUE KEY `unique_source` (`server_id`,`source`,`type`); SET SESSION old_alter_table=0; + +ALTER TABLE mail_domain ADD COLUMN `relay_host` varchar(255) NOT NULL default '' AFTER `dkim_public`, + ADD COLUMN `relay_user` varchar(255) NOT NULL default '' AFTER `relay_host`, + ADD COLUMN `relay_pass` varchar(255) NOT NULL default '' AFTER `relay_user`; diff --git a/install/sql/ispconfig3.sql b/install/sql/ispconfig3.sql index baeb079219..587df55382 100644 --- a/install/sql/ispconfig3.sql +++ b/install/sql/ispconfig3.sql @@ -884,6 +884,9 @@ CREATE TABLE `mail_domain` ( `dkim_selector` varchar(63) NOT NULL DEFAULT 'default', `dkim_private` mediumtext NULL, `dkim_public` mediumtext NULL, + `relay_host` varchar(255) NOT NULL DEFAULT '', + `relay_user` varchar(255) NOT NULL DEFAULT '', + `relay_pass` varchar(255) NOT NULL DEFAULT '', `active` enum('n','y') NOT NULL DEFAULT 'n', PRIMARY KEY (`domain_id`), KEY `server_id` (`server_id`,`domain`), diff --git a/install/tpl/debian_postfix.conf.master b/install/tpl/debian_postfix.conf.master index 24b1e154cf..42bb3f1510 100644 --- a/install/tpl/debian_postfix.conf.master +++ b/install/tpl/debian_postfix.conf.master @@ -24,7 +24,7 @@ transport_maps = hash:/var/lib/mailman/data/transport-mailman, proxy:mysql:{conf relay_domains = proxy:mysql:{config_dir}/mysql-virtual_relaydomains.cf relay_recipient_maps = proxy:mysql:{config_dir}/mysql-virtual_relayrecipientmaps.cf smtpd_sender_login_maps = proxy:mysql:{config_dir}/mysql-virtual_sender_login_maps.cf -proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $sender_bcc_maps $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks $smtpd_sender_login_maps $virtual_uid_maps $virtual_gid_maps $smtpd_client_restrictions $smtpd_sender_restrictions $smtpd_recipient_restrictions +proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $sender_bcc_maps $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks $smtpd_sender_login_maps $virtual_uid_maps $virtual_gid_maps $smtpd_client_restrictions $smtpd_sender_restrictions $smtpd_recipient_restrictions $smtp_sasl_password_maps $sender_dependent_relayhost_maps smtpd_helo_required = yes smtpd_helo_restrictions = permit_mynetworks, check_helo_access regexp:{config_dir}/helo_access, permit_sasl_authenticated, reject_invalid_helo_hostname, reject_non_fqdn_helo_hostname, check_helo_access regexp:{config_dir}/blacklist_helo, {reject_unknown_helo_hostname}, permit smtpd_sender_restrictions = check_sender_access proxy:mysql:{config_dir}/mysql-virtual_sender.cf, {reject_aslm} check_sender_access regexp:{config_dir}/tag_as_originating.re, permit_mynetworks{reject_slm}, permit_sasl_authenticated, reject_non_fqdn_sender, reject_unlisted_sender, check_sender_access regexp:{config_dir}/tag_as_foreign.re @@ -53,3 +53,9 @@ tls_preempt_cipherlist = yes address_verify_negative_refresh_time=60s # needed for postfix < 3.3 when using reject_unverified_recipient (lmtp): enable_original_recipient = yes +sender_dependent_relayhost_maps = proxy:mysql:{config_dir}/mysql-virtual_sender-relayhost.cf +smtp_sasl_password_maps = proxy:mysql:{config_dir}/mysql-virtual_sender-relayauth.cf, hash:{config_dir}/sasl_passwd +smtp_sender_dependent_authentication = yes +smtp_sasl_auth_enable = yes +smtp_sasl_security_options = noanonymous, noplaintext +smtp_sasl_tls_security_options = noanonymous diff --git a/install/tpl/fedora_postfix.conf.master b/install/tpl/fedora_postfix.conf.master index 04690bff70..dd232b6d6d 100644 --- a/install/tpl/fedora_postfix.conf.master +++ b/install/tpl/fedora_postfix.conf.master @@ -20,7 +20,7 @@ transport_maps = hash:/var/lib/mailman/data/transport-mailman, proxy:mysql:{conf relay_domains = proxy:mysql:{config_dir}/mysql-virtual_relaydomains.cf relay_recipient_maps = proxy:mysql:{config_dir}/mysql-virtual_relayrecipientmaps.cf smtpd_sender_login_maps = proxy:mysql:{config_dir}/mysql-virtual_sender_login_maps.cf -proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $sender_bcc_maps $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks $smtpd_sender_login_maps $virtual_uid_maps $virtual_gid_maps $smtpd_client_restrictions $smtpd_sender_restrictions $smtpd_recipient_restrictions +proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $sender_bcc_maps $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks $smtpd_sender_login_maps $virtual_uid_maps $virtual_gid_maps $smtpd_client_restrictions $smtpd_sender_restrictions $smtpd_recipient_restrictions $smtp_sasl_password_maps $sender_dependent_relayhost_maps smtpd_helo_required = yes smtpd_helo_restrictions = permit_mynetworks, check_helo_access regexp:{config_dir}/helo_access, permit_sasl_authenticated, reject_invalid_helo_hostname, reject_non_fqdn_helo_hostname, check_helo_access regexp:{config_dir}/blacklist_helo, {reject_unknown_helo_hostname}, permit smtpd_sender_restrictions = check_sender_access proxy:mysql:{config_dir}/mysql-virtual_sender.cf, {reject_aslm} check_sender_access regexp:{config_dir}/tag_as_originating.re, permit_mynetworks{reject_slm}, permit_sasl_authenticated, reject_non_fqdn_sender, reject_unlisted_sender, check_sender_access regexp:{config_dir}/tag_as_foreign.re @@ -49,3 +49,9 @@ tls_preempt_cipherlist = yes address_verify_negative_refresh_time=60s # needed for postfix < 3.3 when using reject_unverified_recipient (lmtp): enable_original_recipient = yes +sender_dependent_relayhost_maps = proxy:mysql:{config_dir}/mysql-virtual_sender-relayhost.cf +smtp_sasl_password_maps = proxy:mysql:{config_dir}/mysql-virtual_sender-relayauth.cf, hash:{config_dir}/sasl_passwd +smtp_sender_dependent_authentication = yes +smtp_sasl_auth_enable = yes +smtp_sasl_security_options = noanonymous, noplaintext +smtp_sasl_tls_security_options = noanonymous diff --git a/install/tpl/gentoo_postfix.conf.master b/install/tpl/gentoo_postfix.conf.master index 7ee0c83568..7c337bbb5d 100644 --- a/install/tpl/gentoo_postfix.conf.master +++ b/install/tpl/gentoo_postfix.conf.master @@ -19,7 +19,7 @@ transport_maps = hash:/var/lib/mailman/data/transport-mailman, proxy:mysql:{conf relay_domains = proxy:mysql:{config_dir}/mysql-virtual_relaydomains.cf relay_recipient_maps = proxy:mysql:{config_dir}/mysql-virtual_relayrecipientmaps.cf smtpd_sender_login_maps = proxy:mysql:{config_dir}/mysql-virtual_sender_login_maps.cf -proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks $smtpd_sender_login_maps $virtual_uid_maps $virtual_gid_maps $smtpd_client_restrictions $smtpd_sender_restrictions $smtpd_recipient_restrictions +proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $sender_bcc_maps $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks $smtpd_sender_login_maps $virtual_uid_maps $virtual_gid_maps $smtpd_client_restrictions $smtpd_sender_restrictions $smtpd_recipient_restrictions $smtp_sasl_password_maps $sender_dependent_relayhost_maps smtpd_helo_required = yes smtpd_helo_restrictions = permit_mynetworks, check_helo_access regexp:{config_dir}/helo_access, permit_sasl_authenticated, reject_invalid_helo_hostname, reject_non_fqdn_helo_hostname, check_helo_access regexp:{config_dir}/blacklist_helo, {reject_unknown_helo_hostname}, permit smtpd_sender_restrictions = check_sender_access proxy:mysql:{config_dir}/mysql-virtual_sender.cf, {reject_aslm} check_sender_access regexp:{config_dir}/tag_as_originating.re, permit_mynetworks{reject_slm}, permit_sasl_authenticated, reject_non_fqdn_sender, reject_unlisted_sender, check_sender_access regexp:{config_dir}/tag_as_foreign.re @@ -48,3 +48,9 @@ tls_preempt_cipherlist = yes address_verify_negative_refresh_time=60s # needed for postfix < 3.3 when using reject_unverified_recipient (lmtp): enable_original_recipient = yes +sender_dependent_relayhost_maps = proxy:mysql:{config_dir}/mysql-virtual_sender-relayhost.cf +smtp_sasl_password_maps = proxy:mysql:{config_dir}/mysql-virtual_sender-relayauth.cf, hash:{config_dir}/sasl_passwd +smtp_sender_dependent_authentication = yes +smtp_sasl_auth_enable = yes +smtp_sasl_security_options = noanonymous, noplaintext +smtp_sasl_tls_security_options = noanonymous diff --git a/install/tpl/mysql-virtual_sender-relayauth.cf.master b/install/tpl/mysql-virtual_sender-relayauth.cf.master new file mode 100644 index 0000000000..413607c763 --- /dev/null +++ b/install/tpl/mysql-virtual_sender-relayauth.cf.master @@ -0,0 +1,10 @@ +user = {mysql_server_ispconfig_user} +password = {mysql_server_ispconfig_password} +dbname = {mysql_server_database} +hosts = {mysql_server_ip} +query = SELECT CONCAT(relay_user,':',relay_pass) as credential + FROM mail_domain + WHERE domain = '%d' + AND active = 'y' + AND concat(relay_host,relay_user,relay_pass) != '' + AND server_id = {server_id} diff --git a/install/tpl/mysql-virtual_sender-relayhost.cf.master b/install/tpl/mysql-virtual_sender-relayhost.cf.master new file mode 100644 index 0000000000..3bb4c81330 --- /dev/null +++ b/install/tpl/mysql-virtual_sender-relayhost.cf.master @@ -0,0 +1,10 @@ +user = {mysql_server_ispconfig_user} +password = {mysql_server_ispconfig_password} +dbname = {mysql_server_database} +hosts = {mysql_server_ip} +query = SELECT relay_host as relayhost + FROM mail_domain + WHERE domain = '%d' + AND active = 'y' + AND concat(relay_host,relay_user,relay_pass) != '' + AND server_id = {server_id} diff --git a/install/tpl/opensuse_postfix.conf.master b/install/tpl/opensuse_postfix.conf.master index 8ee01580be..c7c282ca14 100644 --- a/install/tpl/opensuse_postfix.conf.master +++ b/install/tpl/opensuse_postfix.conf.master @@ -22,7 +22,7 @@ transport_maps = hash:/var/lib/mailman/data/transport-mailman, proxy:mysql:{conf relay_domains = proxy:mysql:{config_dir}/mysql-virtual_relaydomains.cf relay_recipient_maps = proxy:mysql:{config_dir}/mysql-virtual_relayrecipientmaps.cf smtpd_sender_login_maps = proxy:mysql:{config_dir}/mysql-virtual_sender_login_maps.cf -proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $sender_bcc_maps $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks $smtpd_sender_login_maps $virtual_uid_maps $virtual_gid_maps $smtpd_client_restrictions $smtpd_sender_restrictions $smtpd_recipient_restrictions +proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $sender_bcc_maps $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks $smtpd_sender_login_maps $virtual_uid_maps $virtual_gid_maps $smtpd_client_restrictions $smtpd_sender_restrictions $smtpd_recipient_restrictions $smtp_sasl_password_maps $sender_dependent_relayhost_maps smtpd_helo_required = yes smtpd_helo_restrictions = permit_mynetworks, check_helo_access regexp:{config_dir}/helo_access, permit_sasl_authenticated, reject_invalid_helo_hostname, reject_non_fqdn_helo_hostname, check_helo_access regexp:{config_dir}/blacklist_helo, {reject_unknown_helo_hostname}, permit smtpd_sender_restrictions = check_sender_access proxy:mysql:{config_dir}/mysql-virtual_sender.cf, {reject_aslm} check_sender_access regexp:{config_dir}/tag_as_originating.re, permit_mynetworks{reject_slm}, permit_sasl_authenticated, reject_non_fqdn_sender, reject_unlisted_sender, check_sender_access regexp:{config_dir}/tag_as_foreign.re @@ -51,3 +51,9 @@ tls_preempt_cipherlist = yes address_verify_negative_refresh_time=60s # needed for postfix < 3.3 when using reject_unverified_recipient (lmtp): enable_original_recipient = yes +sender_dependent_relayhost_maps = proxy:mysql:{config_dir}/mysql-virtual_sender-relayhost.cf +smtp_sasl_password_maps = proxy:mysql:{config_dir}/mysql-virtual_sender-relayauth.cf, hash:{config_dir}/sasl_passwd +smtp_sender_dependent_authentication = yes +smtp_sasl_auth_enable = yes +smtp_sasl_security_options = noanonymous, noplaintext +smtp_sasl_tls_security_options = noanonymous diff --git a/interface/web/mail/form/mail_domain.tform.php b/interface/web/mail/form/mail_domain.tform.php index 5c8fa0185a..6e768193e0 100644 --- a/interface/web/mail/form/mail_domain.tform.php +++ b/interface/web/mail/form/mail_domain.tform.php @@ -136,6 +136,30 @@ $form["tabs"]['domain'] = array ( 'errmsg'=> 'dkim_selector_error'), ), ), + 'relay_host' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '', + 'width' => '40', + 'maxlength' => '255' + ), + 'relay_user' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '', + 'width' => '40', + 'maxlength' => '255' + ), + 'relay_pass' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '', + 'width' => '40', + 'maxlength' => '255' + ), 'active' => array ( 'datatype' => 'VARCHAR', 'formtype' => 'CHECKBOX', diff --git a/interface/web/mail/lib/lang/ar_mail_domain.lng b/interface/web/mail/lib/lang/ar_mail_domain.lng index 4d99d0fb5e..e53c5d9ec2 100644 --- a/interface/web/mail/lib/lang/ar_mail_domain.lng +++ b/interface/web/mail/lib/lang/ar_mail_domain.lng @@ -19,5 +19,7 @@ $wb['dkim_private_key_error'] = 'Invalid DKIM-Private key'; $wb['dkim_selector_txt'] = 'DKIM-Selector'; $wb['dkim_selector_error'] = 'Invalid DKIM-Selector. Use only lower-case alphanumeric characters (a-z or 0-9) up to 63 chars'; $wb['dkim_settings_txt'] = 'DomainKeys Identified Mail (DKIM)'; -$wb['error_not_allowed_server_id'] = 'Chosen server is not allowed for this account.'; -?> +$wb['error_not_allowed_server_id'] = 'Chosen server is not allowed for this accounte'; +$wb['relayhost_txt'] = 'Relayhost'; +$wb['relayhost_user_txt'] = 'Relayhost User'; +$wb['relayhost_password_txt'] = 'Relayhost Password'; diff --git a/interface/web/mail/lib/lang/bg_mail_domain.lng b/interface/web/mail/lib/lang/bg_mail_domain.lng index 6e30a26494..f2d329a62e 100644 --- a/interface/web/mail/lib/lang/bg_mail_domain.lng +++ b/interface/web/mail/lib/lang/bg_mail_domain.lng @@ -20,4 +20,6 @@ $wb['dkim_settings_txt'] = 'DomainKeys Identified Mail (DKIM)'; $wb['policy_txt'] = 'Спамфилтър'; $wb['no_policy'] = '- не е разрешен -'; $wb['error_not_allowed_server_id'] = 'Chosen server is not allowed for this account.'; -?> +$wb['relayhost_txt'] = 'Relayhost'; +$wb['relayhost_user_txt'] = 'Relayhost User'; +$wb['relayhost_password_txt'] = 'Relayhost Password'; diff --git a/interface/web/mail/lib/lang/br_mail_domain.lng b/interface/web/mail/lib/lang/br_mail_domain.lng index 8cf2cdce65..7371f51894 100644 --- a/interface/web/mail/lib/lang/br_mail_domain.lng +++ b/interface/web/mail/lib/lang/br_mail_domain.lng @@ -20,3 +20,6 @@ $wb['no_policy'] = '-desabilitado-'; $wb['error_not_allowed_server_id'] = 'O servidor selecionado não é permitido para esta conta.'; $wb['dkim_selector_txt'] = 'Seletor DKIM'; $wb['dkim_selector_error'] = 'Seletor DKIM é inválido. Utilize apenas caracteres alfanuméricos em minúsculas (a-z ou 0-9) e no máximo 63 caracteres.'; +$wb['relayhost_txt'] = 'Relayhost'; +$wb['relayhost_user_txt'] = 'Relayhost User'; +$wb['relayhost_password_txt'] = 'Relayhost Password'; diff --git a/interface/web/mail/lib/lang/ca_mail_domain.lng b/interface/web/mail/lib/lang/ca_mail_domain.lng index 65d664cf3a..0b701a16c3 100644 --- a/interface/web/mail/lib/lang/ca_mail_domain.lng +++ b/interface/web/mail/lib/lang/ca_mail_domain.lng @@ -20,4 +20,6 @@ $wb['dkim_settings_txt'] = 'DomainKeys Identified Mail (DKIM)'; $wb['error_not_allowed_server_id'] = 'Chosen server is not allowed for this account.'; $wb['dkim_selector_txt'] = 'DKIM-Selector'; $wb['dkim_selector_error'] = 'Invalid DKIM-Selector. Use only lower-case alphanumeric characters (a-z or 0-9) up to 63 chars'; -?> +$wb['relayhost_txt'] = 'Relayhost'; +$wb['relayhost_user_txt'] = 'Relayhost User'; +$wb['relayhost_password_txt'] = 'Relayhost Password'; diff --git a/interface/web/mail/lib/lang/cz_mail_domain.lng b/interface/web/mail/lib/lang/cz_mail_domain.lng index 2d1adc0343..0c648a68f3 100644 --- a/interface/web/mail/lib/lang/cz_mail_domain.lng +++ b/interface/web/mail/lib/lang/cz_mail_domain.lng @@ -20,3 +20,6 @@ $wb['dkim_selector_error'] = 'Neplatný DKIM selektor. PoužÃvejte pouze malá $wb['policy_txt'] = 'Spamový filtr'; $wb['no_policy'] = '- nepovoleno -'; $wb['error_not_allowed_server_id'] = 'Zvolený server nenà povolen pro tento úÄet.'; +$wb['relayhost_txt'] = 'Relayhost'; +$wb['relayhost_user_txt'] = 'Relayhost User'; +$wb['relayhost_password_txt'] = 'Relayhost Password'; diff --git a/interface/web/mail/lib/lang/de_mail_domain.lng b/interface/web/mail/lib/lang/de_mail_domain.lng index 13aac42c79..1a64a44231 100644 --- a/interface/web/mail/lib/lang/de_mail_domain.lng +++ b/interface/web/mail/lib/lang/de_mail_domain.lng @@ -20,4 +20,6 @@ $wb['dkim_selector_txt'] = 'DKIM-Selector'; $wb['dkim_selector_error'] = 'Ungültiger DKIM-Selector. Verwenden Sie nur max. 63 alphanumerische Zeichen (a-z oder 0-9)'; $wb['dkim_settings_txt'] = 'DomainKeys Identified Mail (DKIM)'; $wb['error_not_allowed_server_id'] = 'Chosen server is not allowed for this account.'; -?> +$wb['relayhost_txt'] = 'Relayhost'; +$wb['relayhost_user_txt'] = 'Relayhost User'; +$wb['relayhost_password_txt'] = 'Relayhost Password'; diff --git a/interface/web/mail/lib/lang/dk_mail_domain.lng b/interface/web/mail/lib/lang/dk_mail_domain.lng index f37b81d65e..fcced58e1a 100644 --- a/interface/web/mail/lib/lang/dk_mail_domain.lng +++ b/interface/web/mail/lib/lang/dk_mail_domain.lng @@ -20,4 +20,6 @@ $wb['dkim_settings_txt'] = 'DomainKeys Identified Mail (DKIM)'; $wb['error_not_allowed_server_id'] = 'Chosen server is not allowed for this account.'; $wb['dkim_selector_txt'] = 'DKIM-Selector'; $wb['dkim_selector_error'] = 'Invalid DKIM-Selector. Use only lower-case alphanumeric characters (a-z or 0-9) up to 63 chars'; -?> +$wb['relayhost_txt'] = 'Relayhost'; +$wb['relayhost_user_txt'] = 'Relayhost User'; +$wb['relayhost_password_txt'] = 'Relayhost Password'; diff --git a/interface/web/mail/lib/lang/el_mail_domain.lng b/interface/web/mail/lib/lang/el_mail_domain.lng index 3973746dfd..3909576a3c 100644 --- a/interface/web/mail/lib/lang/el_mail_domain.lng +++ b/interface/web/mail/lib/lang/el_mail_domain.lng @@ -20,4 +20,6 @@ $wb['dkim_settings_txt'] = 'DomainKeys Identified Mail (DKIM)'; $wb['dkim_selector_txt'] = 'DKIM-Selector'; $wb['dkim_selector_error'] = 'Invalid DKIM-Selector. Use only lower-case alphanumeric characters (a-z or 0-9) up to 63 chars'; $wb['error_not_allowed_server_id'] = 'Chosen server is not allowed for this account.'; -?> +$wb['relayhost_txt'] = 'Relayhost'; +$wb['relayhost_user_txt'] = 'Relayhost User'; +$wb['relayhost_password_txt'] = 'Relayhost Password'; diff --git a/interface/web/mail/lib/lang/en_mail_domain.lng b/interface/web/mail/lib/lang/en_mail_domain.lng index 0190c0ab06..39e22f75b6 100644 --- a/interface/web/mail/lib/lang/en_mail_domain.lng +++ b/interface/web/mail/lib/lang/en_mail_domain.lng @@ -20,4 +20,6 @@ $wb['no_policy'] = '- not enabled -'; $wb['error_not_allowed_server_id'] = 'Chosen server is not allowed for this account.'; $wb['dkim_selector_txt'] = 'DKIM-Selector'; $wb['dkim_selector_error'] = 'Invalid DKIM-Selector. Use only lower-case alphanumeric characters (a-z or 0-9) up to 63 chars'; -?> +$wb['relayhost_txt'] = 'Relayhost'; +$wb['relayhost_user_txt'] = 'Relayhost User'; +$wb['relayhost_password_txt'] = 'Relayhost Password'; diff --git a/interface/web/mail/lib/lang/es_mail_domain.lng b/interface/web/mail/lib/lang/es_mail_domain.lng index 36c5ae5763..bd23b94191 100644 --- a/interface/web/mail/lib/lang/es_mail_domain.lng +++ b/interface/web/mail/lib/lang/es_mail_domain.lng @@ -20,4 +20,6 @@ $wb['no_policy'] = '- no habilitado -'; $wb['policy_txt'] = 'Filtro de spam'; $wb['server_id_txt'] = 'Servidor'; $wb['type_txt'] = 'Tipo'; -?> +$wb['relayhost_txt'] = 'Relayhost'; +$wb['relayhost_user_txt'] = 'Relayhost User'; +$wb['relayhost_password_txt'] = 'Relayhost Password'; diff --git a/interface/web/mail/lib/lang/fi_mail_domain.lng b/interface/web/mail/lib/lang/fi_mail_domain.lng index 088c768091..d77fe32500 100644 --- a/interface/web/mail/lib/lang/fi_mail_domain.lng +++ b/interface/web/mail/lib/lang/fi_mail_domain.lng @@ -20,4 +20,6 @@ $wb['dkim_selector_txt'] = 'DKIM-Selector'; $wb['dkim_selector_error'] = 'Invalid DKIM-Selector. Use only lower-case alphanumeric characters (a-z or 0-9) up to 63 chars'; $wb['dkim_settings_txt'] = 'DomainKeys Identified Mail (DKIM)'; $wb['error_not_allowed_server_id'] = 'Chosen server is not allowed for this account.'; -?> +$wb['relayhost_txt'] = 'Relayhost'; +$wb['relayhost_user_txt'] = 'Relayhost User'; +$wb['relayhost_password_txt'] = 'Relayhost Password'; diff --git a/interface/web/mail/lib/lang/fr_mail_domain.lng b/interface/web/mail/lib/lang/fr_mail_domain.lng index eebbdc02b1..56efb88aae 100644 --- a/interface/web/mail/lib/lang/fr_mail_domain.lng +++ b/interface/web/mail/lib/lang/fr_mail_domain.lng @@ -20,4 +20,6 @@ $wb['dkim_settings_txt'] = 'DomainKeys Identified Mail (DKIM)'; $wb['error_not_allowed_server_id'] = 'Chosen server is not allowed for this account.'; $wb['dkim_selector_txt'] = 'DKIM-Selector'; $wb['dkim_selector_error'] = 'Invalid DKIM-Selector. Use only lower-case alphanumeric characters (a-z or 0-9) up to 63 chars'; -?> +$wb['relayhost_txt'] = 'Relayhost'; +$wb['relayhost_user_txt'] = 'Relayhost User'; +$wb['relayhost_password_txt'] = 'Relayhost Password'; diff --git a/interface/web/mail/lib/lang/hr_mail_domain.lng b/interface/web/mail/lib/lang/hr_mail_domain.lng index eb91862b31..2f53c694c8 100644 --- a/interface/web/mail/lib/lang/hr_mail_domain.lng +++ b/interface/web/mail/lib/lang/hr_mail_domain.lng @@ -20,4 +20,6 @@ $wb['dkim_selector_txt'] = 'DKIM-Selector'; $wb['dkim_selector_error'] = 'Invalid DKIM-Selector. Use only lower-case alphanumeric characters (a-z or 0-9) up to 63 chars'; $wb['dkim_settings_txt'] = 'DomainKeys Identified Mail (DKIM)'; $wb['error_not_allowed_server_id'] = 'Chosen server is not allowed for this account.'; -?> +$wb['relayhost_txt'] = 'Relayhost'; +$wb['relayhost_user_txt'] = 'Relayhost User'; +$wb['relayhost_password_txt'] = 'Relayhost Password'; diff --git a/interface/web/mail/lib/lang/hu_mail_domain.lng b/interface/web/mail/lib/lang/hu_mail_domain.lng index 431beb8a01..96a5dc03a5 100644 --- a/interface/web/mail/lib/lang/hu_mail_domain.lng +++ b/interface/web/mail/lib/lang/hu_mail_domain.lng @@ -20,4 +20,6 @@ $wb['dkim_selector_txt'] = 'DKIM-Selector'; $wb['dkim_selector_error'] = 'Invalid DKIM-Selector. Use only lower-case alphanumeric characters (a-z or 0-9) up to 63 chars'; $wb['dkim_settings_txt'] = 'DomainKeys Identified Mail (DKIM)'; $wb['error_not_allowed_server_id'] = 'Chosen server is not allowed for this account.'; -?> +$wb['relayhost_txt'] = 'Relayhost'; +$wb['relayhost_user_txt'] = 'Relayhost User'; +$wb['relayhost_password_txt'] = 'Relayhost Password'; diff --git a/interface/web/mail/lib/lang/id_mail_domain.lng b/interface/web/mail/lib/lang/id_mail_domain.lng index c13968dde8..2979773e8c 100644 --- a/interface/web/mail/lib/lang/id_mail_domain.lng +++ b/interface/web/mail/lib/lang/id_mail_domain.lng @@ -20,4 +20,6 @@ $wb['dkim_selector_txt'] = 'DKIM-Selector'; $wb['dkim_selector_error'] = 'Invalid DKIM-Selector. Use only lower-case alphanumeric characters (a-z or 0-9) up to 63 chars'; $wb['dkim_settings_txt'] = 'DomainKeys Identified Mail (DKIM)'; $wb['error_not_allowed_server_id'] = 'Chosen server is not allowed for this account.'; -?> +$wb['relayhost_txt'] = 'Relayhost'; +$wb['relayhost_user_txt'] = 'Relayhost User'; +$wb['relayhost_password_txt'] = 'Relayhost Password'; diff --git a/interface/web/mail/lib/lang/it_mail_domain.lng b/interface/web/mail/lib/lang/it_mail_domain.lng index 46089adb90..88e2c146df 100644 --- a/interface/web/mail/lib/lang/it_mail_domain.lng +++ b/interface/web/mail/lib/lang/it_mail_domain.lng @@ -20,4 +20,6 @@ $wb['dkim_settings_txt'] = 'DomainKeys Identified Mail (DKIM)'; $wb['error_not_allowed_server_id'] = 'Chosen server is not allowed for this account.'; $wb['dkim_selector_txt'] = 'DKIM-Selector'; $wb['dkim_selector_error'] = 'Invalid DKIM-Selector. Use only lower-case alphanumeric characters (a-z or 0-9) up to 63 chars'; -?> +$wb['relayhost_txt'] = 'Relayhost'; +$wb['relayhost_user_txt'] = 'Relayhost User'; +$wb['relayhost_password_txt'] = 'Relayhost Password'; diff --git a/interface/web/mail/lib/lang/ja_mail_domain.lng b/interface/web/mail/lib/lang/ja_mail_domain.lng index 787937668c..a96faaa367 100644 --- a/interface/web/mail/lib/lang/ja_mail_domain.lng +++ b/interface/web/mail/lib/lang/ja_mail_domain.lng @@ -20,4 +20,6 @@ $wb['no_policy'] = '使ã‚ãªã„'; $wb['error_not_allowed_server_id'] = 'Chosen server is not allowed for this account.'; $wb['dkim_selector_txt'] = 'DKIM-Selector'; $wb['dkim_selector_error'] = 'Invalid DKIM-Selector. Use only lower-case alphanumeric characters (a-z or 0-9) up to 63 chars'; -?> +$wb['relayhost_txt'] = 'Relayhost'; +$wb['relayhost_user_txt'] = 'Relayhost User'; +$wb['relayhost_password_txt'] = 'Relayhost Password'; diff --git a/interface/web/mail/lib/lang/nl_mail_domain.lng b/interface/web/mail/lib/lang/nl_mail_domain.lng index c4fe53c718..0e8a912a71 100644 --- a/interface/web/mail/lib/lang/nl_mail_domain.lng +++ b/interface/web/mail/lib/lang/nl_mail_domain.lng @@ -20,4 +20,6 @@ $wb['dkim_selector_txt'] = 'DKIM-Selector'; $wb['dkim_selector_error'] = 'Invalid DKIM-Selector. Use only lower-case alphanumeric characters (a-z or 0-9) up to 63 chars'; $wb['dkim_settings_txt'] = 'DomainKeys Identified Mail (DKIM)'; $wb['error_not_allowed_server_id'] = 'Chosen server is not allowed for this account.'; -?> +$wb['relayhost_txt'] = 'Relayhost'; +$wb['relayhost_user_txt'] = 'Relayhost User'; +$wb['relayhost_password_txt'] = 'Relayhost Password'; diff --git a/interface/web/mail/lib/lang/pl_mail_domain.lng b/interface/web/mail/lib/lang/pl_mail_domain.lng index e4483a0d64..7ff3c297ff 100644 --- a/interface/web/mail/lib/lang/pl_mail_domain.lng +++ b/interface/web/mail/lib/lang/pl_mail_domain.lng @@ -20,4 +20,6 @@ $wb['dkim_selector_txt'] = 'DKIM-Selector'; $wb['dkim_selector_error'] = 'Invalid DKIM-Selector. Use only lower-case alphanumeric characters (a-z or 0-9) up to 63 chars'; $wb['dkim_settings_txt'] = 'DomainKeys Identified Mail (DKIM)'; $wb['error_not_allowed_server_id'] = 'Chosen server is not allowed for this account.'; -?> +$wb['relayhost_txt'] = 'Relayhost'; +$wb['relayhost_user_txt'] = 'Relayhost User'; +$wb['relayhost_password_txt'] = 'Relayhost Password'; diff --git a/interface/web/mail/lib/lang/pt_mail_domain.lng b/interface/web/mail/lib/lang/pt_mail_domain.lng index 224a38a2e1..092f83f1ca 100644 --- a/interface/web/mail/lib/lang/pt_mail_domain.lng +++ b/interface/web/mail/lib/lang/pt_mail_domain.lng @@ -20,4 +20,6 @@ $wb['dkim_selector_txt'] = 'DKIM-Selector'; $wb['dkim_selector_error'] = 'Invalid DKIM-Selector. Use only lower-case alphanumeric characters (a-z or 0-9) up to 63 chars'; $wb['dkim_settings_txt'] = 'DomainKeys Identified Mail (DKIM)'; $wb['error_not_allowed_server_id'] = 'Chosen server is not allowed for this account.'; -?> +$wb['relayhost_txt'] = 'Relayhost'; +$wb['relayhost_user_txt'] = 'Relayhost User'; +$wb['relayhost_password_txt'] = 'Relayhost Password'; diff --git a/interface/web/mail/lib/lang/ro_mail_domain.lng b/interface/web/mail/lib/lang/ro_mail_domain.lng index ede56e351e..e0543f36ec 100644 --- a/interface/web/mail/lib/lang/ro_mail_domain.lng +++ b/interface/web/mail/lib/lang/ro_mail_domain.lng @@ -20,4 +20,6 @@ $wb['dkim_selector_txt'] = 'DKIM-Selector'; $wb['dkim_selector_error'] = 'Invalid DKIM-Selector. Use only lower-case alphanumeric characters (a-z or 0-9) up to 63 chars'; $wb['dkim_settings_txt'] = 'DomainKeys Identified Mail (DKIM)'; $wb['error_not_allowed_server_id'] = 'Chosen server is not allowed for this account.'; -?> +$wb['relayhost_txt'] = 'Relayhost'; +$wb['relayhost_user_txt'] = 'Relayhost User'; +$wb['relayhost_password_txt'] = 'Relayhost Password'; diff --git a/interface/web/mail/lib/lang/ru_mail_domain.lng b/interface/web/mail/lib/lang/ru_mail_domain.lng index adc1ac74cb..7567e3c670 100644 --- a/interface/web/mail/lib/lang/ru_mail_domain.lng +++ b/interface/web/mail/lib/lang/ru_mail_domain.lng @@ -20,4 +20,6 @@ $wb['dkim_settings_txt'] = 'DomainKeys Identified Mail (DKIM)'; $wb['dkim_selector_txt'] = 'DKIM-Ñелектор'; $wb['dkim_selector_error'] = 'Ðекорректный DKIM-Ñелектор. ИÑпользуйте только Ñтрочные буквенно-цифровые Ñимволы (a-z или 0-9) до 63 Ñимволов'; $wb['error_not_allowed_server_id'] = 'Выбранный Ñервер не доÑтупен Ð´Ð»Ñ Ñтой учетной запиÑи.'; -?> +$wb['relayhost_txt'] = 'Relayhost'; +$wb['relayhost_user_txt'] = 'Relayhost User'; +$wb['relayhost_password_txt'] = 'Relayhost Password'; diff --git a/interface/web/mail/lib/lang/se_mail_domain.lng b/interface/web/mail/lib/lang/se_mail_domain.lng index fcd87813ba..7f192224e6 100644 --- a/interface/web/mail/lib/lang/se_mail_domain.lng +++ b/interface/web/mail/lib/lang/se_mail_domain.lng @@ -20,4 +20,6 @@ $wb['dkim_selector_error'] = 'Invalid DKIM-Selector. Use only lower-case alphanu $wb['dkim_settings_txt'] = 'DomainKeys Identified Mail (DKIM)'; $wb['no_policy'] = '- ej aktiverat -'; $wb['error_not_allowed_server_id'] = 'Chosen server is not allowed for this account.'; -?> +$wb['relayhost_txt'] = 'Relayhost'; +$wb['relayhost_user_txt'] = 'Relayhost User'; +$wb['relayhost_password_txt'] = 'Relayhost Password'; diff --git a/interface/web/mail/lib/lang/sk_mail_domain.lng b/interface/web/mail/lib/lang/sk_mail_domain.lng index dfe8ce8899..ed67d20044 100644 --- a/interface/web/mail/lib/lang/sk_mail_domain.lng +++ b/interface/web/mail/lib/lang/sk_mail_domain.lng @@ -20,4 +20,6 @@ $wb['no_policy'] = '- Nie je aktivovaný -'; $wb['dkim_settings_txt'] = 'DomainKeys Identified Mail (DKIM)'; $wb['error_not_allowed_server_id'] = 'Chosen server is not allowed for this account.'; $wb['dkim_selector_txt'] = 'DKIM-Selector'; -?> +$wb['relayhost_txt'] = 'Relayhost'; +$wb['relayhost_user_txt'] = 'Relayhost User'; +$wb['relayhost_password_txt'] = 'Relayhost Password'; diff --git a/interface/web/mail/lib/lang/tr_mail_domain.lng b/interface/web/mail/lib/lang/tr_mail_domain.lng index 3e7d9cc412..802fdcf94b 100644 --- a/interface/web/mail/lib/lang/tr_mail_domain.lng +++ b/interface/web/mail/lib/lang/tr_mail_domain.lng @@ -20,4 +20,6 @@ $wb['dkim_settings_txt'] = 'DomainKeys Tanımlı E-posta (DKIM)'; $wb['error_not_allowed_server_id'] = 'SeçilmiÅŸ sunucuda bu hesap kullanılamaz.'; $wb['dkim_selector_txt'] = 'DKIM Seçici'; $wb['dkim_selector_error'] = 'DKIM seçici geçersiz. En fazla 63 karakter uzunluÄŸunda, yalnız küçük Ä°ngilizce harf ve rakamları kullanın (a-z ya da 0-9)'; -?> +$wb['relayhost_txt'] = 'Relayhost'; +$wb['relayhost_user_txt'] = 'Relayhost User'; +$wb['relayhost_password_txt'] = 'Relayhost Password'; diff --git a/interface/web/mail/mail_domain_edit.php b/interface/web/mail/mail_domain_edit.php index 7409bf0c7c..3ea60c08f9 100644 --- a/interface/web/mail/mail_domain_edit.php +++ b/interface/web/mail/mail_domain_edit.php @@ -215,6 +215,13 @@ class page_action extends tform_actions { $app->tpl->setVar("edit_disabled", 0); } + // 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); + // 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'])); diff --git a/interface/web/mail/templates/mail_domain_edit.htm b/interface/web/mail/templates/mail_domain_edit.htm index cb462c9819..676e55f9dc 100644 --- a/interface/web/mail/templates/mail_domain_edit.htm +++ b/interface/web/mail/templates/mail_domain_edit.htm @@ -75,6 +75,24 @@ {tmpl_var name='policy'} </select></div> </div> + <div class="form-group"> + <label for="relay_host" class="col-sm-3 control-label">{tmpl_var name='relayhost_txt'}</label> + <div class="col-sm-9"> + <input type="text" name="relay_host" id="relay_host" value="{tmpl_var name='relay_host'}" class="form-control" /> + </div> + </div> + <div class="form-group"> + <label for="relay_user" class="col-sm-3 control-label">{tmpl_var name='relayhost_user_txt'}</label> + <div class="col-sm-9"> + <input type="text" name="relay_user" id="relay_user" value="{tmpl_var name='relay_user'}" class="form-control" /> + </div> + </div> + <div class="form-group"> + <label for="relay_pass" class="col-sm-3 control-label">{tmpl_var name='relayhost_password_txt'}</label> + <div class="col-sm-9"> + <input type="text" name="relay_pass" id="relay_pass" value="{tmpl_var name='relay_pass'}" class="form-control" /> + </div> + </div> <div class="form-group"> <label class="col-sm-3 control-label">{tmpl_var name='active_txt'}</label> <div class="col-sm-9"> -- GitLab