From 8b23f8271380f676c8e0e44c7cb8af1146a0e534 Mon Sep 17 00:00:00 2001 From: Florian Schaal Date: Wed, 8 Jul 2015 15:28:26 +0200 Subject: [PATCH] moved dovecot-lmtpd from install/update to server-plugin to prevented dovecot-errors when using dovecot without dovecot-lmtpd --- install/dist/lib/debian60.lib.php | 8 +++++++- install/dist/lib/fedora.lib.php | 8 ++++++++ install/dist/lib/gentoo.lib.php | 8 ++++++++ install/dist/lib/opensuse.lib.php | 8 ++++++++ install/lib/installer_base.lib.php | 8 ++++++++ install/tpl/debian6_dovecot2.conf.master | 4 ++-- install/tpl/debian_dovecot2.conf.master | 4 ++-- install/tpl/fedora_dovecot2.conf.master | 2 +- install/tpl/opensuse_dovecot2.conf.master | 4 ++-- server/plugins-available/postfix_server_plugin.inc.php | 5 +++++ 10 files changed, 51 insertions(+), 8 deletions(-) diff --git a/install/dist/lib/debian60.lib.php b/install/dist/lib/debian60.lib.php index 8c7f1bae4..8f14f9be0 100644 --- a/install/dist/lib/debian60.lib.php +++ b/install/dist/lib/debian60.lib.php @@ -35,6 +35,8 @@ class installer extends installer_base { global $conf; $virtual_transport = 'dovecot'; + + $configure_lmtp = false; // check if virtual_transport must be changed if ($this->is_update) { @@ -44,6 +46,7 @@ class installer extends installer_base { if(isset($ini_array['mail']['mailbox_virtual_uidgid_maps']) && $ini_array['mail']['mailbox_virtual_uidgid_maps'] == 'y') { $virtual_transport = 'lmtp:unix:private/dovecot-lmtp'; + $configure_lmtp = true; } } @@ -114,7 +117,10 @@ class installer extends installer_base { } } - + //* dovecot-lmtpd + if($configure_lmtp) { + replaceLine($config_dir.'/'.$configfile, 'protocols = imap pop3', 'protocols = imap pop3 lmtp', 1, 0); + } //* dovecot-sql.conf $configfile = 'dovecot-sql.conf'; diff --git a/install/dist/lib/fedora.lib.php b/install/dist/lib/fedora.lib.php index 542092511..cbc39dea8 100644 --- a/install/dist/lib/fedora.lib.php +++ b/install/dist/lib/fedora.lib.php @@ -334,6 +334,8 @@ class installer_dist extends installer_base { global $conf; $virtual_transport = 'dovecot'; + + $configure_lmtp = false; // check if virtual_transport must be changed if ($this->is_update) { @@ -343,6 +345,7 @@ class installer_dist extends installer_base { if(isset($ini_array['mail']['mailbox_virtual_uidgid_maps']) && $ini_array['mail']['mailbox_virtual_uidgid_maps'] == 'y') { $virtual_transport = 'lmtp:unix:private/dovecot-lmtp'; + $configure_lmtp = true; } } @@ -415,6 +418,11 @@ class installer_dist extends installer_base { } } + //* dovecot-lmtpd + if($configure_lmtp) { + replaceLine($config_dir.'/'.$configfile, 'protocols = imap pop3', 'protocols = imap pop3 lmtp', 1, 0); + } + //* dovecot-sql.conf $configfile = 'dovecot-sql.conf'; if(is_file("$config_dir/$configfile")){ diff --git a/install/dist/lib/gentoo.lib.php b/install/dist/lib/gentoo.lib.php index 6615dacc9..4e04e4211 100644 --- a/install/dist/lib/gentoo.lib.php +++ b/install/dist/lib/gentoo.lib.php @@ -255,6 +255,8 @@ class installer extends installer_base global $conf; $virtual_transport = 'dovecot'; + + $configure_lmtp = false; // check if virtual_transport must be changed if ($this->is_update) { @@ -264,6 +266,7 @@ class installer extends installer_base if(isset($ini_array['mail']['mailbox_virtual_uidgid_maps']) && $ini_array['mail']['mailbox_virtual_uidgid_maps'] == 'y') { $virtual_transport = 'lmtp:unix:private/dovecot-lmtp'; + $configure_lmtp = true; } } @@ -312,6 +315,11 @@ class installer extends installer_base $content = $this->get_template_file('dovecot.conf', true); $this->write_config_file($configfile, $content); + //* dovecot-lmtpd + if($configure_lmtp) { + replaceLine($config_dir.'/'.$configfile, 'protocols = imap pop3', 'protocols = imap pop3 lmtp', 1, 0); + } + //* dovecot-sql.conf $configfile = $config_dir.'/dovecot-sql.conf'; $content = $this->get_template_file('debian_dovecot-sql.conf', true, true); diff --git a/install/dist/lib/opensuse.lib.php b/install/dist/lib/opensuse.lib.php index 59124a5f3..06dc0e416 100644 --- a/install/dist/lib/opensuse.lib.php +++ b/install/dist/lib/opensuse.lib.php @@ -342,6 +342,8 @@ class installer_dist extends installer_base { global $conf; $virtual_transport = 'dovecot'; + + $configure_lmtp = false; // check if virtual_transport must be changed if ($this->is_update) { @@ -351,6 +353,7 @@ class installer_dist extends installer_base { if(isset($ini_array['mail']['mailbox_virtual_uidgid_maps']) && $ini_array['mail']['mailbox_virtual_uidgid_maps'] == 'y') { $virtual_transport = 'lmtp:unix:private/dovecot-lmtp'; + $configure_lmtp = true; } } @@ -419,6 +422,11 @@ class installer_dist extends installer_base { } } + //* dovecot-lmtpd + if($configure_lmtp) { + replaceLine($config_dir.'/'.$configfile, 'protocols = imap pop3', 'protocols = imap pop3 lmtp', 1, 0); + } + //* dovecot-sql.conf $configfile = 'dovecot-sql.conf'; if(is_file("$config_dir/$configfile")){ diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php index 49545c82c..2ddea5ed3 100644 --- a/install/lib/installer_base.lib.php +++ b/install/lib/installer_base.lib.php @@ -999,6 +999,8 @@ class installer_base { global $conf; $virtual_transport = 'dovecot'; + + $configure_lmtp = false; // check if virtual_transport must be changed if ($this->is_update) { @@ -1008,6 +1010,7 @@ class installer_base { if(isset($ini_array['mail']['mailbox_virtual_uidgid_maps']) && $ini_array['mail']['mailbox_virtual_uidgid_maps'] == 'y') { $virtual_transport = 'lmtp:unix:private/dovecot-lmtp'; + $configure_lmtp = true; } } @@ -1078,6 +1081,11 @@ class installer_base { } } + //* dovecot-lmtpd + if($configure_lmtp) { + replaceLine($config_dir.'/'.$configfile, 'protocols = imap pop3', 'protocols = imap pop3 lmtp', 1, 0); + } + //* dovecot-sql.conf $configfile = 'dovecot-sql.conf'; if(is_file($config_dir.'/'.$configfile)) { diff --git a/install/tpl/debian6_dovecot2.conf.master b/install/tpl/debian6_dovecot2.conf.master index ee77f4e20..82c7e47a4 100644 --- a/install/tpl/debian6_dovecot2.conf.master +++ b/install/tpl/debian6_dovecot2.conf.master @@ -1,5 +1,5 @@ listen = *,[::] -protocols = imap pop3 lmtp +protocols = imap pop3 auth_mechanisms = plain login disable_plaintext_auth = no log_timestamp = "%Y-%m-%d %H:%M:%S " @@ -61,4 +61,4 @@ protocol lda { protocol lmtp { postmaster_address = webmaster@localhost mail_plugins = quota sieve -} \ No newline at end of file +} diff --git a/install/tpl/debian_dovecot2.conf.master b/install/tpl/debian_dovecot2.conf.master index 39cf60fbe..a753433c5 100644 --- a/install/tpl/debian_dovecot2.conf.master +++ b/install/tpl/debian_dovecot2.conf.master @@ -1,5 +1,5 @@ listen = *,[::] -protocols = imap pop3 lmtp +protocols = imap pop3 auth_mechanisms = plain login disable_plaintext_auth = no log_timestamp = "%Y-%m-%d %H:%M:%S " @@ -62,4 +62,4 @@ protocol lda { protocol lmtp { postmaster_address = webmaster@localhost mail_plugins = quota sieve -} \ No newline at end of file +} diff --git a/install/tpl/fedora_dovecot2.conf.master b/install/tpl/fedora_dovecot2.conf.master index 9fca31927..a527676b6 100644 --- a/install/tpl/fedora_dovecot2.conf.master +++ b/install/tpl/fedora_dovecot2.conf.master @@ -1,5 +1,5 @@ listen = *,[::] -protocols = imap pop3 lmtp +protocols = imap pop3 auth_mechanisms = plain login disable_plaintext_auth = no log_timestamp = "%Y-%m-%d %H:%M:%S " diff --git a/install/tpl/opensuse_dovecot2.conf.master b/install/tpl/opensuse_dovecot2.conf.master index 1b9d9dc15..8deb305a4 100644 --- a/install/tpl/opensuse_dovecot2.conf.master +++ b/install/tpl/opensuse_dovecot2.conf.master @@ -1,5 +1,5 @@ listen = *,[::] -protocols = imap pop3 lmtp +protocols = imap pop3 auth_mechanisms = plain login disable_plaintext_auth = no log_timestamp = "%Y-%m-%d %H:%M:%S " @@ -59,4 +59,4 @@ protocol lda { protocol lmtp { postmaster_address = webmaster@localhost mail_plugins = quota sieve -} \ No newline at end of file +} diff --git a/server/plugins-available/postfix_server_plugin.inc.php b/server/plugins-available/postfix_server_plugin.inc.php index f6a55f593..15accbf31 100644 --- a/server/plugins-available/postfix_server_plugin.inc.php +++ b/server/plugins-available/postfix_server_plugin.inc.php @@ -166,6 +166,8 @@ class postfix_server_plugin { if($app->system->is_installed('dovecot')) { exec("postconf -e 'virtual_transport = lmtp:unix:private/dovecot-lmtp'"); exec('postfix reload'); + $app->system->replaceLine("/etc/dovecot/dovecot.conf", "protocols = imap pop3", "protocols = imap pop3 lmtp"); + exec($conf['init_scripts'] . '/' . 'dovecot restart'); } } else { @@ -173,8 +175,11 @@ class postfix_server_plugin { if($app->system->is_installed('dovecot')) { exec("postconf -e 'virtual_transport = dovecot'"); exec('postfix reload'); + $app->system->replaceLine("/etc/dovecot/dovecot.conf", "protocols = imap pop3 lmtp", "protocols = imap pop3"); + exec($conf['init_scripts'] . '/' . 'dovecot restart'); } } +print_r($mail_config); exec("postconf -e 'mailbox_size_limit = ".intval($mail_config['mailbox_size_limit']*1024*1024)."'"); exec("postconf -e 'message_size_limit = ".intval($mail_config['message_size_limit']*1024*1024)."'"); -- GitLab