diff --git a/install/patches/upd_0094.php b/install/patches/upd_0094.php index b9516e232e99506f6f451d27a8d50253b6b623f1..5531e88fa915b6b0993aeb48aeeddc15c0d25aa3 100644 --- a/install/patches/upd_0094.php +++ b/install/patches/upd_0094.php @@ -8,7 +8,10 @@ class upd_0094 extends installer_patch_update { global $inst; // Remove any duplicate mail_forwardings prior to adding unique key - $inst->db->query("DELETE FROM mail_forwarding WHERE forwarding_id IN (SELECT forwarding_id FROM (SELECT forwarding_id, COUNT(source) AS source_count FROM mail_forwarding GROUP BY source HAVING source_count > 1) as t1)"); + $inst->db->query("DELETE FROM mail_forwarding WHERE forwarding_id NOT IN (SELECT MIN(forwarding_id) FROM mail_forwarding GROUP BY source)"); + + // Remove any duplicate mail_transports prior to adding unique key + $inst->db->query("DELETE FROM mail_transport WHERE transport_id NOT IN (SELECT MIN(transport_id) FROM mail_transport GROUP BY domain, server_id)"); } } diff --git a/install/sql/incremental/upd_dev_collection.sql b/install/sql/incremental/upd_dev_collection.sql index 2400ca907a96c706f7f8b70b0231f165db3cb488..72f0f0376186324ff56893fe00a367c2a6ac09ad 100644 --- a/install/sql/incremental/upd_dev_collection.sql +++ b/install/sql/incremental/upd_dev_collection.sql @@ -14,3 +14,7 @@ DROP TABLE IF EXISTS `software_package`; DROP TABLE IF EXISTS `software_repo`; DROP TABLE IF EXISTS `software_update`; DROP TABLE IF EXISTS `software_update_inst`; + +-- mail_transport.domain must be unique +ALTER TABLE `mail_transport` DROP KEY `server_id_2`; +ALTER TABLE `mail_transport` ADD UNIQUE KEY `server_id_2` (`server_id`, `domain`); diff --git a/install/sql/ispconfig3.sql b/install/sql/ispconfig3.sql index e37bef7f28364af45b30f616e71e3c5330cec424..9112599453e5cf8c2c245d41037208a074d31e0b 100644 --- a/install/sql/ispconfig3.sql +++ b/install/sql/ispconfig3.sql @@ -1023,7 +1023,7 @@ CREATE TABLE `mail_transport` ( `active` enum('n','y') NOT NULL DEFAULT 'n', PRIMARY KEY (`transport_id`), KEY `server_id` (`server_id`,`transport`), - KEY `server_id_2` (`server_id`,`domain`) + UNIQUE KEY `server_id_2` (`server_id`, `domain`) ) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- diff --git a/interface/lib/classes/validate_mail_transport.inc.php b/interface/lib/classes/validate_mail_transport.inc.php new file mode 100644 index 0000000000000000000000000000000000000000..eaf4b92a72c1df3cf9d78bafb4c04dfeb50ba865 --- /dev/null +++ b/interface/lib/classes/validate_mail_transport.inc.php @@ -0,0 +1,63 @@ +<?php + +/* +Copyright (c) 2007, Till Brehm, projektfarm Gmbh +Copyright (c) 2021, Jesse Norell <jesse@kci.net> +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of ISPConfig nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +class validate_mail_transport { + + function get_error($errmsg) { + global $app; + + if(isset($app->tform->wordbook[$errmsg])) { + return $app->tform->wordbook[$errmsg]."<br>\r\n"; + } else { + return $errmsg."<br>\r\n"; + } + } + + /* Validator function for checking the 'domain' of a mail transport */ + function validate_domain($field_name, $field_value, $validator) { + global $app, $conf; + + if(empty($field_value) || $field_name != 'domain') return; + + if(isset($app->remoting_lib->primary_id)) { + $id = $app->remoting_lib->primary_id; + } else { + $id = $app->tform->primary_id; + } + + // mail_transport.domain (could also be an email address) must be unique per server + $sql = "SELECT transport_id, domain FROM mail_transport WHERE domain = ? AND server_id = ? AND transport_id != ?"; + $domain_check = $app->db->queryOneRecord($sql, $field_value, $conf['server_id'], $id); + + if($domain_check) return $this->get_error('domain_error_unique'); + } + +} diff --git a/interface/web/mail/form/mail_transport.tform.php b/interface/web/mail/form/mail_transport.tform.php index b40ad86e8ad15a590f0f57efcd961fa272020776..deb83d629d9d8aa276e45f85f29d8bc57235050d 100644 --- a/interface/web/mail/form/mail_transport.tform.php +++ b/interface/web/mail/form/mail_transport.tform.php @@ -88,6 +88,14 @@ $form["tabs"]['transport'] = array ( 4 => array( 'event' => 'SAVE', 'type' => 'STRIPNL') ), + 'validators' => array( + 0 => array( + 'type' => 'CUSTOM', + 'class' => 'validate_mail_transport', + 'function' => 'validate_domain', + 'errmsg'=> 'domain_error_unique', + ) + ), 'default' => '', 'value' => '', 'width' => '30', diff --git a/interface/web/mail/lib/lang/ar_mail_alias.lng b/interface/web/mail/lib/lang/ar_mail_alias.lng index 98921ce7ce15b197954fe3e54b6bcecf5be4478c..fbfd79b501cc5e00aebbd003966d1eac8097db33 100644 --- a/interface/web/mail/lib/lang/ar_mail_alias.lng +++ b/interface/web/mail/lib/lang/ar_mail_alias.lng @@ -3,9 +3,9 @@ $wb['email_txt'] = 'Email'; $wb['destination_txt'] = 'Destination'; $wb['active_txt'] = 'Active'; $wb['email_error_isemail'] = 'Email address is invalid.'; -$wb['email_error_unique'] = 'Duplicate Emailaddress.'; +$wb['email_error_unique'] = 'Duplicate Email Address.'; $wb['no_domain_perm'] = 'You have no permission for this domain.'; -$wb['destination_error_isemail'] = 'Destination Emailaddress is invalid.'; +$wb['destination_error_isemail'] = 'Destination Email Address is invalid.'; $wb['limit_mailalias_txt'] = 'The max. number of email aliases for your account is reached.'; $wb['duplicate_mailbox_txt'] = 'There is already a mailbox with this email address'; $wb['domain_txt'] = 'Domain'; diff --git a/interface/web/mail/lib/lang/ar_mail_forward.lng b/interface/web/mail/lib/lang/ar_mail_forward.lng index 4291bd415cfac6cc6cfe20e68a1440455124e913..29d0d91a57f15cb67934d18116cff14450a7009f 100644 --- a/interface/web/mail/lib/lang/ar_mail_forward.lng +++ b/interface/web/mail/lib/lang/ar_mail_forward.lng @@ -10,6 +10,6 @@ $wb['greylisting_txt'] = 'Enable greylisting'; $wb['destination_error_empty'] = 'The destination must not be empty.'; $wb['destination_error_isemail'] = 'The destination contains at least one invalid email address.'; $wb['email_error_isemail'] = 'Please enter a valid email address.'; -$wb['email_error_unique'] = 'Duplicate Emailaddress.'; +$wb['email_error_unique'] = 'Duplicate 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)'; diff --git a/interface/web/mail/lib/lang/ar_mail_transport.lng b/interface/web/mail/lib/lang/ar_mail_transport.lng index c2498634693c8e60c96e28f6d666f8e9c2e8cbdf..16c33c02011d4bec352ffdde12a70234d51aeab7 100644 --- a/interface/web/mail/lib/lang/ar_mail_transport.lng +++ b/interface/web/mail/lib/lang/ar_mail_transport.lng @@ -8,4 +8,4 @@ $wb['sort_order_txt'] = 'Sort by'; $wb['active_txt'] = 'Active'; $wb['limit_mailrouting_txt'] = 'The max. number of routes for your account is reached.'; $wb['transport_txt'] = 'Transport'; -?> +$wb['domain_error_unique'] = 'A mail transport for this Domain already exists on this server.'; diff --git a/interface/web/mail/lib/lang/bg_mail_alias.lng b/interface/web/mail/lib/lang/bg_mail_alias.lng index 98921ce7ce15b197954fe3e54b6bcecf5be4478c..fbfd79b501cc5e00aebbd003966d1eac8097db33 100644 --- a/interface/web/mail/lib/lang/bg_mail_alias.lng +++ b/interface/web/mail/lib/lang/bg_mail_alias.lng @@ -3,9 +3,9 @@ $wb['email_txt'] = 'Email'; $wb['destination_txt'] = 'Destination'; $wb['active_txt'] = 'Active'; $wb['email_error_isemail'] = 'Email address is invalid.'; -$wb['email_error_unique'] = 'Duplicate Emailaddress.'; +$wb['email_error_unique'] = 'Duplicate Email Address.'; $wb['no_domain_perm'] = 'You have no permission for this domain.'; -$wb['destination_error_isemail'] = 'Destination Emailaddress is invalid.'; +$wb['destination_error_isemail'] = 'Destination Email Address is invalid.'; $wb['limit_mailalias_txt'] = 'The max. number of email aliases for your account is reached.'; $wb['duplicate_mailbox_txt'] = 'There is already a mailbox with this email address'; $wb['domain_txt'] = 'Domain'; diff --git a/interface/web/mail/lib/lang/bg_mail_forward.lng b/interface/web/mail/lib/lang/bg_mail_forward.lng index 1e12ca1eced794c45b1b82bccd962ac640a6d432..10193da7400de18125cec689119a2023c027bb3f 100644 --- a/interface/web/mail/lib/lang/bg_mail_forward.lng +++ b/interface/web/mail/lib/lang/bg_mail_forward.lng @@ -10,6 +10,6 @@ $wb['greylisting_txt'] = 'Enable greylisting'; $wb['destination_error_empty'] = 'The destination must not be empty.'; $wb['destination_error_isemail'] = 'The destination contains at least one invalid email address.'; $wb['email_error_isemail'] = 'Please enter a valid email address.'; -$wb['email_error_unique'] = 'Duplicate Emailaddress.'; +$wb['email_error_unique'] = 'Duplicate 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)'; diff --git a/interface/web/mail/lib/lang/bg_mail_transport.lng b/interface/web/mail/lib/lang/bg_mail_transport.lng index 57394dc218e8881a9fd8b26319b54a5c1b865981..0f4a8db0b8c3622568c06f5694c1f41732c0a0ac 100644 --- a/interface/web/mail/lib/lang/bg_mail_transport.lng +++ b/interface/web/mail/lib/lang/bg_mail_transport.lng @@ -8,4 +8,4 @@ $wb['sort_order_txt'] = 'Сортирай по'; $wb['active_txt'] = 'Ðктивен'; $wb['limit_mailrouting_txt'] = 'The max. number of routes for your account is reached.'; $wb['transport_txt'] = 'Transport'; -?> +$wb['domain_error_unique'] = 'A mail transport for this Domain already exists on this server.'; diff --git a/interface/web/mail/lib/lang/br_mail_transport.lng b/interface/web/mail/lib/lang/br_mail_transport.lng index 3f87343dbcdd47e9f56b27b571a60ba7b10a01be..afe35c1a7e66a60aeab27c235fd88c581df9d8df 100644 --- a/interface/web/mail/lib/lang/br_mail_transport.lng +++ b/interface/web/mail/lib/lang/br_mail_transport.lng @@ -8,3 +8,4 @@ $wb['sort_order_txt'] = 'Ordenar por'; $wb['active_txt'] = 'Ativo'; $wb['limit_mailrouting_txt'] = 'O limite de rotas de email para esta conta foi alcançado.'; $wb['transport_txt'] = 'Transporte'; +$wb['domain_error_unique'] = 'A mail transport for this Domain already exists on this server.'; diff --git a/interface/web/mail/lib/lang/ca_mail_transport.lng b/interface/web/mail/lib/lang/ca_mail_transport.lng index f8a5536560d4ae94e0cd63336f3a39f92ce4b276..7b12c7d0eb919596e0c0e05f40dec15c00e6b85a 100644 --- a/interface/web/mail/lib/lang/ca_mail_transport.lng +++ b/interface/web/mail/lib/lang/ca_mail_transport.lng @@ -8,4 +8,4 @@ $wb['sort_order_txt'] = 'Trier par'; $wb['active_txt'] = 'Actif'; $wb['limit_mailrouting_txt'] = 'Le nombre maximal de routes pour votre compte a été atteint.'; $wb['transport_txt'] = 'Transport'; -?> +$wb['domain_error_unique'] = 'A mail transport for this Domain already exists on this server.'; diff --git a/interface/web/mail/lib/lang/cz_mail_transport.lng b/interface/web/mail/lib/lang/cz_mail_transport.lng index 14c7dc2934dc5b746ba603930f3ae0a43228a654..d2dfec591f9725f767c41a8193da82a8f9fd35c7 100644 --- a/interface/web/mail/lib/lang/cz_mail_transport.lng +++ b/interface/web/mail/lib/lang/cz_mail_transport.lng @@ -8,3 +8,4 @@ $wb['sort_order_txt'] = 'TÅ™Ãdit podle'; $wb['active_txt'] = 'AktivnÃ'; $wb['limit_mailrouting_txt'] = 'Byl dosažen maximálnà poÄet e-mail smÄ›rovánà pro Váš úÄet.'; $wb['transport_txt'] = 'Transport'; +$wb['domain_error_unique'] = 'A mail transport for this Domain already exists on this server.'; diff --git a/interface/web/mail/lib/lang/de_mail_transport.lng b/interface/web/mail/lib/lang/de_mail_transport.lng index 873036f947329e3df2ef874909f4dc0749954aef..724882866f968c6d4ac11da1576c41d781db4d90 100644 --- a/interface/web/mail/lib/lang/de_mail_transport.lng +++ b/interface/web/mail/lib/lang/de_mail_transport.lng @@ -8,4 +8,4 @@ $wb['sort_order_txt'] = 'Sortiert nach'; $wb['active_txt'] = 'Aktiv'; $wb['limit_mailrouting_txt'] = 'Die maximale Anzahl an E-Mail Routen für Ihr Konto wurde erreicht.'; $wb['transport_txt'] = 'Transport'; -?> +$wb['domain_error_unique'] = 'A mail transport for this Domain already exists on this server.'; diff --git a/interface/web/mail/lib/lang/dk_mail_transport.lng b/interface/web/mail/lib/lang/dk_mail_transport.lng index df2131cde4234714498ff56c105e6a17c5b66741..bb8a94f433d2259244de66755ad61e6634951af8 100644 --- a/interface/web/mail/lib/lang/dk_mail_transport.lng +++ b/interface/web/mail/lib/lang/dk_mail_transport.lng @@ -8,4 +8,4 @@ $wb['sort_order_txt'] = 'Sort by'; $wb['active_txt'] = 'Aktiv'; $wb['limit_mailrouting_txt'] = 'Max. antal af ruter for din konto er nÃ¥et.'; $wb['transport_txt'] = 'Transport'; -?> +$wb['domain_error_unique'] = 'A mail transport for this Domain already exists on this server.'; diff --git a/interface/web/mail/lib/lang/el_mail_transport.lng b/interface/web/mail/lib/lang/el_mail_transport.lng index 1b1a5c7ab4a0229b7824bf031df672fd926d7a6e..37eef348b626a7aad46a3f446537e98979d051d8 100644 --- a/interface/web/mail/lib/lang/el_mail_transport.lng +++ b/interface/web/mail/lib/lang/el_mail_transport.lng @@ -8,4 +8,4 @@ $wb['sort_order_txt'] = 'Ταξινόμηση κατά'; $wb['active_txt'] = 'ΕνεÏγό'; $wb['limit_mailrouting_txt'] = 'Το μÎγιστο πλήθος των δÏομολογήσεων email για τον λογαÏιασμό σας, εξαντλήθηκε.'; $wb['transport_txt'] = 'Transport'; -?> +$wb['domain_error_unique'] = 'A mail transport for this Domain already exists on this server.'; diff --git a/interface/web/mail/lib/lang/en_mail_alias.lng b/interface/web/mail/lib/lang/en_mail_alias.lng index 23c567125df3eb506cd19f8e699a6f00ba02b58b..84770e4c7ec9547315f78720ca7e367996d79258 100644 --- a/interface/web/mail/lib/lang/en_mail_alias.lng +++ b/interface/web/mail/lib/lang/en_mail_alias.lng @@ -3,9 +3,9 @@ $wb['email_txt'] = 'Email'; $wb['destination_txt'] = 'Destination'; $wb['active_txt'] = 'Active'; $wb['email_error_isemail'] = 'Email address is invalid.'; -$wb['email_error_unique'] = 'Duplicate Emailaddress.'; +$wb['email_error_unique'] = 'Duplicate Email Address.'; $wb['no_domain_perm'] = 'You have no permission for this domain.'; -$wb['destination_error_isemail'] = 'Destination Emailaddress is invalid.'; +$wb['destination_error_isemail'] = 'Destination Email Address is invalid.'; $wb['limit_mailalias_txt'] = 'The max. number of email aliases for your account is reached.'; $wb['duplicate_mailbox_txt'] = 'There is already a mailbox with this email address.'; $wb['domain_txt'] = 'Domain'; diff --git a/interface/web/mail/lib/lang/en_mail_forward.lng b/interface/web/mail/lib/lang/en_mail_forward.lng index 6be6ab7e7054865d4403faed55080d0e6c4044f6..65b2b753d9731839a417ff8efa976b9b3c46389c 100644 --- a/interface/web/mail/lib/lang/en_mail_forward.lng +++ b/interface/web/mail/lib/lang/en_mail_forward.lng @@ -9,7 +9,7 @@ $wb['source_txt'] = 'Source Email'; $wb['destination_error_empty'] = 'The destination must not be empty.'; $wb['destination_error_isemail'] = 'The destination contains at least one invalid email address.'; $wb['email_error_isemail'] = 'Please enter a valid email address.'; -$wb['email_error_unique'] = 'Duplicate Emailaddress.'; +$wb['email_error_unique'] = 'Duplicate 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/lib/lang/en_mail_transport.lng b/interface/web/mail/lib/lang/en_mail_transport.lng index a0b3dd808b6d0cec752227adaebc6820e99f44b9..16c33c02011d4bec352ffdde12a70234d51aeab7 100644 --- a/interface/web/mail/lib/lang/en_mail_transport.lng +++ b/interface/web/mail/lib/lang/en_mail_transport.lng @@ -8,4 +8,4 @@ $wb['sort_order_txt'] = 'Sort by'; $wb['active_txt'] = 'Active'; $wb['limit_mailrouting_txt'] = 'The max. number of routes for your account is reached.'; $wb['transport_txt'] = 'Transport'; -?> \ No newline at end of file +$wb['domain_error_unique'] = 'A mail transport for this Domain already exists on this server.'; diff --git a/interface/web/mail/lib/lang/es_mail_transport.lng b/interface/web/mail/lib/lang/es_mail_transport.lng index b35ee39188c7bfd1722f854f3baa4fba443dc20b..e0b3b4ad81503667e8e003b1a0d58cb15977f541 100644 --- a/interface/web/mail/lib/lang/es_mail_transport.lng +++ b/interface/web/mail/lib/lang/es_mail_transport.lng @@ -8,4 +8,4 @@ $wb['server_id_txt'] = 'Servidor'; $wb['sort_order_txt'] = 'Ordenar por'; $wb['transport_txt'] = 'Transporte'; $wb['type_txt'] = 'Tipo'; -?> +$wb['domain_error_unique'] = 'A mail transport for this Domain already exists on this server.'; diff --git a/interface/web/mail/lib/lang/fi_mail_transport.lng b/interface/web/mail/lib/lang/fi_mail_transport.lng index 01be49e44ac786965d16cb77cf12a46d0e7a67b4..24675e457f6d35eb5648b07ae6aa37bdedd91f30 100644 --- a/interface/web/mail/lib/lang/fi_mail_transport.lng +++ b/interface/web/mail/lib/lang/fi_mail_transport.lng @@ -8,4 +8,4 @@ $wb['sort_order_txt'] = 'Järjestä..'; $wb['active_txt'] = 'Käytössä'; $wb['limit_mailrouting_txt'] = 'Käyttäjätunnuksella on jo sallittu määrä sähköpostireitityksiä.'; $wb['transport_txt'] = 'Transport'; -?> +$wb['domain_error_unique'] = 'A mail transport for this Domain already exists on this server.'; diff --git a/interface/web/mail/lib/lang/fr_mail_transport.lng b/interface/web/mail/lib/lang/fr_mail_transport.lng index f8a5536560d4ae94e0cd63336f3a39f92ce4b276..7b12c7d0eb919596e0c0e05f40dec15c00e6b85a 100644 --- a/interface/web/mail/lib/lang/fr_mail_transport.lng +++ b/interface/web/mail/lib/lang/fr_mail_transport.lng @@ -8,4 +8,4 @@ $wb['sort_order_txt'] = 'Trier par'; $wb['active_txt'] = 'Actif'; $wb['limit_mailrouting_txt'] = 'Le nombre maximal de routes pour votre compte a été atteint.'; $wb['transport_txt'] = 'Transport'; -?> +$wb['domain_error_unique'] = 'A mail transport for this Domain already exists on this server.'; diff --git a/interface/web/mail/lib/lang/hr_mail_transport.lng b/interface/web/mail/lib/lang/hr_mail_transport.lng index c27687f9562306a1b507aefbb3d3093b16bb5084..923ac09d52670ab5190967c62ef3b8d29f82ff18 100644 --- a/interface/web/mail/lib/lang/hr_mail_transport.lng +++ b/interface/web/mail/lib/lang/hr_mail_transport.lng @@ -8,4 +8,4 @@ $wb['sort_order_txt'] = 'Sortiraj'; $wb['active_txt'] = 'Aktivno'; $wb['limit_mailrouting_txt'] = 'IskoriÅ¡ten je maksimalan broj ruta.'; $wb['transport_txt'] = 'Transport'; -?> +$wb['domain_error_unique'] = 'A mail transport for this Domain already exists on this server.'; diff --git a/interface/web/mail/lib/lang/hu_mail_transport.lng b/interface/web/mail/lib/lang/hu_mail_transport.lng index 7ade063c2b17a4de1cc4c7af9cba97245aacfda2..08e8300e2ed3c5d375d9864c7c080f4299c11755 100644 --- a/interface/web/mail/lib/lang/hu_mail_transport.lng +++ b/interface/web/mail/lib/lang/hu_mail_transport.lng @@ -8,4 +8,4 @@ $wb['sort_order_txt'] = 'Rendezés'; $wb['active_txt'] = 'AktÃv'; $wb['limit_mailrouting_txt'] = 'Nincs több Email irányÃtás lehetÅ‘ség.'; $wb['transport_txt'] = 'Transport'; -?> +$wb['domain_error_unique'] = 'A mail transport for this Domain already exists on this server.'; diff --git a/interface/web/mail/lib/lang/id_mail_transport.lng b/interface/web/mail/lib/lang/id_mail_transport.lng index 8ad3dacf2ab4bb6932dfef044cc1d9478c184e2f..818f6f72803a6ee6ce84f9f0eaa431c40d386bf8 100644 --- a/interface/web/mail/lib/lang/id_mail_transport.lng +++ b/interface/web/mail/lib/lang/id_mail_transport.lng @@ -8,4 +8,4 @@ $wb['sort_order_txt'] = 'Urutkan berdasarkan'; $wb['active_txt'] = 'Aktif'; $wb['limit_mailrouting_txt'] = 'Jumlah maks rute untuk akun Anda telah tercapai.'; $wb['transport_txt'] = 'Transport'; -?> +$wb['domain_error_unique'] = 'A mail transport for this Domain already exists on this server.'; diff --git a/interface/web/mail/lib/lang/it_mail_transport.lng b/interface/web/mail/lib/lang/it_mail_transport.lng index 9273621ff19fbd2fe748e2264dc91b1ec0c6b2d5..fbd1a58087e6d399d257e94b59df52b5dff1d6de 100644 --- a/interface/web/mail/lib/lang/it_mail_transport.lng +++ b/interface/web/mail/lib/lang/it_mail_transport.lng @@ -8,4 +8,4 @@ $wb['sort_order_txt'] = 'Ordina per'; $wb['active_txt'] = 'Attivo'; $wb['limit_mailrouting_txt'] = 'The max. number of routes raggiunto per il tuo account.'; $wb['transport_txt'] = 'Transport'; -?> +$wb['domain_error_unique'] = 'A mail transport for this Domain already exists on this server.'; diff --git a/interface/web/mail/lib/lang/ja_mail_transport.lng b/interface/web/mail/lib/lang/ja_mail_transport.lng index a870dd118a849898c128694ecb3ad253db88ebd3..afccb0195637a98ad49bbb37eb0d73c4dc88150a 100644 --- a/interface/web/mail/lib/lang/ja_mail_transport.lng +++ b/interface/web/mail/lib/lang/ja_mail_transport.lng @@ -8,4 +8,4 @@ $wb['sort_order_txt'] = '優先度'; $wb['active_txt'] = '有効'; $wb['limit_mailrouting_txt'] = '最大数ã«é”ã—ãŸç‚ºã€ã“れ以上é…é€çµŒè·¯ã‚’è¿½åŠ ã§ãã¾ã›ã‚“。'; $wb['transport_txt'] = 'Transport'; -?> +$wb['domain_error_unique'] = 'A mail transport for this Domain already exists on this server.'; diff --git a/interface/web/mail/lib/lang/nl_mail_transport.lng b/interface/web/mail/lib/lang/nl_mail_transport.lng index 9e792e87628d84e9f1c4517fb1948ffa9b9eb1df..d7ecc761e637a368d05af324b70af545cb806143 100644 --- a/interface/web/mail/lib/lang/nl_mail_transport.lng +++ b/interface/web/mail/lib/lang/nl_mail_transport.lng @@ -8,4 +8,4 @@ $wb['sort_order_txt'] = 'Gesorteerd op'; $wb['active_txt'] = 'Actief'; $wb['limit_mailrouting_txt'] = 'Het max. aantal routes voor uw account is bereikt.'; $wb['transport_txt'] = 'Transport'; -?> +$wb['domain_error_unique'] = 'A mail transport for this Domain already exists on this server.'; diff --git a/interface/web/mail/lib/lang/pl_mail_transport.lng b/interface/web/mail/lib/lang/pl_mail_transport.lng index 514fc263a5353673f867df8295eb240e16340983..672a0c64559dec55a0a163e6551a4f8d50ff310a 100644 --- a/interface/web/mail/lib/lang/pl_mail_transport.lng +++ b/interface/web/mail/lib/lang/pl_mail_transport.lng @@ -8,4 +8,4 @@ $wb['sort_order_txt'] = 'Sortuj wedÅ‚ug'; $wb['active_txt'] = 'Aktywny'; $wb['limit_mailrouting_txt'] = 'Maksymalna ilość Å›cieżek dla Twojego konta zostaÅ‚a przekroczona.'; $wb['transport_txt'] = 'Transport'; -?> +$wb['domain_error_unique'] = 'A mail transport for this Domain already exists on this server.'; diff --git a/interface/web/mail/lib/lang/pt_mail_transport.lng b/interface/web/mail/lib/lang/pt_mail_transport.lng index 3c676b8b4ad83f2dc0c10b57679069a44608ddfd..e41c129ac6d19d48c81a8045895e095b2a75542a 100644 --- a/interface/web/mail/lib/lang/pt_mail_transport.lng +++ b/interface/web/mail/lib/lang/pt_mail_transport.lng @@ -8,4 +8,4 @@ $wb['sort_order_txt'] = 'Ordenar por'; $wb['active_txt'] = 'Activo'; $wb['limit_mailrouting_txt'] = 'O número máximo de rotas para a conta foi atingido.'; $wb['transport_txt'] = 'Transport'; -?> +$wb['domain_error_unique'] = 'A mail transport for this Domain already exists on this server.'; diff --git a/interface/web/mail/lib/lang/ro_mail_alias.lng b/interface/web/mail/lib/lang/ro_mail_alias.lng index 65b9abbd521ec3a7b48259726b521bfdea53a71d..389e96cb4cfcbebe5e23e381b6d0003c9b7a9a6a 100644 --- a/interface/web/mail/lib/lang/ro_mail_alias.lng +++ b/interface/web/mail/lib/lang/ro_mail_alias.lng @@ -3,9 +3,9 @@ $wb['email_txt'] = 'Email'; $wb['destination_txt'] = 'Destinatie'; $wb['active_txt'] = 'Active'; $wb['email_error_isemail'] = 'Adresa Email invlida'; -$wb['email_error_unique'] = 'Duplicat Emailaddress.'; +$wb['email_error_unique'] = 'Duplicat Email Address.'; $wb['no_domain_perm'] = 'NU aveti permisiunea pe acest Domain'; -$wb['destination_error_isemail'] = 'Destinatie Emailaddress invalida.'; +$wb['destination_error_isemail'] = 'Destinatie Email Address invalida.'; $wb['limit_mailalias_txt'] = 'Ati atins numarul maxim de alias-uri pentru contul dumneavoastra '; $wb['duplicate_mailbox_txt'] = 'There is already a mailbox with this email address'; $wb['domain_txt'] = 'Domain'; diff --git a/interface/web/mail/lib/lang/ro_mail_forward.lng b/interface/web/mail/lib/lang/ro_mail_forward.lng index 3103f26dc8be5eba8a0d3574f9e36ff42ebef239..8d60b16de93d718262e732f8bf0d60e2769f6d77 100644 --- a/interface/web/mail/lib/lang/ro_mail_forward.lng +++ b/interface/web/mail/lib/lang/ro_mail_forward.lng @@ -10,6 +10,6 @@ $wb['greylisting_txt'] = 'Enable greylisting'; $wb['destination_error_empty'] = 'The destination must not be empty.'; $wb['destination_error_isemail'] = 'The destination contains at least one invalid email address.'; $wb['email_error_isemail'] = 'Please enter a valid email address.'; -$wb['email_error_unique'] = 'Duplicat Emailaddress.'; +$wb['email_error_unique'] = 'Duplicat 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)'; diff --git a/interface/web/mail/lib/lang/ro_mail_transport.lng b/interface/web/mail/lib/lang/ro_mail_transport.lng index 85fd99ad54788c2b526d4ed171390b823cee3045..736452a6c9dfcecaa6c462b6b49aa67f376783e2 100644 --- a/interface/web/mail/lib/lang/ro_mail_transport.lng +++ b/interface/web/mail/lib/lang/ro_mail_transport.lng @@ -8,4 +8,4 @@ $wb['sort_order_txt'] = 'Sortare pe '; $wb['active_txt'] = 'Active'; $wb['limit_mailrouting_txt'] = 'numarul maxim de rute pentru contul dumneavoastra a fost atins'; $wb['transport_txt'] = 'Transport'; -?> +$wb['domain_error_unique'] = 'A mail transport for this Domain already exists on this server.'; diff --git a/interface/web/mail/lib/lang/ru_mail_transport.lng b/interface/web/mail/lib/lang/ru_mail_transport.lng index 05594256fd9b46f1a2e01f10e5a85d2e4946da40..2c6d758d9bf0966bcf2ebc6934f76d2cf748e4b4 100644 --- a/interface/web/mail/lib/lang/ru_mail_transport.lng +++ b/interface/web/mail/lib/lang/ru_mail_transport.lng @@ -8,4 +8,4 @@ $wb['sort_order_txt'] = 'Сортировать по'; $wb['active_txt'] = 'Ðктивно'; $wb['limit_mailrouting_txt'] = 'ДоÑтигнуто макÑ. количеÑтво маршрутов Ð´Ð»Ñ Ð²Ð°ÑˆÐµÐ¹ учетной запиÑи.'; $wb['transport_txt'] = 'ТранÑпорт'; -?> +$wb['domain_error_unique'] = 'A mail transport for this Domain already exists on this server.'; diff --git a/interface/web/mail/lib/lang/se_mail_transport.lng b/interface/web/mail/lib/lang/se_mail_transport.lng index 70e26b78f9802d13f596e65e1aec79252d9481ff..73ac507b475fb070545d7dde19bce9130e465a60 100644 --- a/interface/web/mail/lib/lang/se_mail_transport.lng +++ b/interface/web/mail/lib/lang/se_mail_transport.lng @@ -8,4 +8,4 @@ $wb['sort_order_txt'] = 'Sortera pÃ¥'; $wb['active_txt'] = 'Aktiv'; $wb['limit_mailrouting_txt'] = 'Det maximala antalet epostrutter för ditt konto är uppnÃ¥tt.'; $wb['transport_txt'] = 'Transport'; -?> +$wb['domain_error_unique'] = 'A mail transport for this Domain already exists on this server.'; diff --git a/interface/web/mail/lib/lang/sk_mail_transport.lng b/interface/web/mail/lib/lang/sk_mail_transport.lng index b27c585b0460fdd55816e3f638dc85f6e04b2d42..e35f9d77b28dcfed5e29456ff3d7d3a01736e06c 100644 --- a/interface/web/mail/lib/lang/sk_mail_transport.lng +++ b/interface/web/mail/lib/lang/sk_mail_transport.lng @@ -8,4 +8,4 @@ $wb['sort_order_txt'] = 'TriediÅ¥ podľa'; $wb['active_txt'] = 'AktÃvny'; $wb['limit_mailrouting_txt'] = 'Max. poÄet trás pre váš úÄet je dosiahnutý.'; $wb['transport_txt'] = 'Transport'; -?> +$wb['domain_error_unique'] = 'A mail transport for this Domain already exists on this server.'; diff --git a/interface/web/mail/lib/lang/tr_mail_transport.lng b/interface/web/mail/lib/lang/tr_mail_transport.lng index 0b417703924b126b2dcfbf5a46fd13d30861844c..bc318545a972e1c67221d6941e94bda87137dba4 100644 --- a/interface/web/mail/lib/lang/tr_mail_transport.lng +++ b/interface/web/mail/lib/lang/tr_mail_transport.lng @@ -8,4 +8,4 @@ $wb['sort_order_txt'] = 'Sıralama'; $wb['active_txt'] = 'Etkin'; $wb['limit_mailrouting_txt'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla yöneltme sayısına ulaÅŸtınız.'; $wb['transport_txt'] = 'Aktarım'; -?> +$wb['domain_error_unique'] = 'A mail transport for this Domain already exists on this server.';