From 877add851b97869b9b16a1e556a21b8731ea770c Mon Sep 17 00:00:00 2001 From: byteworkshosting Date: Tue, 12 Mar 2013 11:57:50 +0100 Subject: [PATCH] Providing Dovecot 2.x configuration steps on FreeBSD (fixes also the FreeBSD-Part of ticket #1015) - configuration files can be adopted for other os i think --- lib/configfiles/freebsd.inc.php | 32 ++++ .../usr_local_etc_dovecot_dovecot-sql.conf | 8 + .../usr_local_etc_dovecot_dovecot.conf | 138 ++++++++++++++++++ 3 files changed, 178 insertions(+) create mode 100644 templates/misc/configfiles/freebsd/dovecot2/usr_local_etc_dovecot_dovecot-sql.conf create mode 100644 templates/misc/configfiles/freebsd/dovecot2/usr_local_etc_dovecot_dovecot.conf diff --git a/lib/configfiles/freebsd.inc.php b/lib/configfiles/freebsd.inc.php index 337564c7..c98ead06 100644 --- a/lib/configfiles/freebsd.inc.php +++ b/lib/configfiles/freebsd.inc.php @@ -203,7 +203,39 @@ return Array( 'restart' => Array( 'sh /usr/local/etc/rc.d/dovecot restart' ) + ), + + // Begin: Dovecot 2.x Config + 'dovecot2' => array( + 'label' => 'Dovecot 2.x', + 'commands_1' => array( + 'cd /usr/ports/mail/dovecot2', + 'make config', + 'set [x] kqueue(2) support (default)', + 'set [x] MySQL database', + 'set [x] SSL protocol (default)', + 'make install clean; rehash', + ), + 'commands_2' => array( + 'echo "dovecot_enable=\"YES\"" >> /etc/rc.conf', + PHP_EOL, + 'pw adduser '. $vmail_username .' -g '. $vmail_groupname .' -u '. $settings['system']['vmail_gid'] .' -d /nonexistent -s /usr/sbin/nologin -c "User for virtual mailtransport used by Postfix and Dovecot"', + PHP_EOL, + 'chmod 0640 /usr/local/etc/dovecot-sql.conf' + ), + 'files' => array( + 'usr_local_etc_dovecot_dovecot.conf' => '/usr/local/etc/dovecot/dovecot.conf', + 'usr_local_etc_dovecot_dovecot-sql.conf' => '/usr/local/etc/dovecot/dovecot-sql.conf' + ), + 'commands_3' => array( + 'echo "dovecot unix - n n - - pipe'. PHP_EOL .'flags=DRhu user='. $vmail_username .':'. $vmail_groupname .' argv=/usr/lib/dovecot/deliver -f ${sender} -d ${recipient} -a ${recipient}" >> /usr/local/etc/postfix/master.cf', + ), + 'restart' => array( + '/usr/local/etc/rc.d/dovecot restart' + ) ) + // End: Dovecot 2.x Config + ) ), 'ftp' => Array( diff --git a/templates/misc/configfiles/freebsd/dovecot2/usr_local_etc_dovecot_dovecot-sql.conf b/templates/misc/configfiles/freebsd/dovecot2/usr_local_etc_dovecot_dovecot-sql.conf new file mode 100644 index 00000000..91ef7d30 --- /dev/null +++ b/templates/misc/configfiles/freebsd/dovecot2/usr_local_etc_dovecot_dovecot-sql.conf @@ -0,0 +1,8 @@ +driver = mysql +connect = host= dbname= user= password= +default_pass_scheme = CRYPT +password_query = SELECT username AS user, password_enc AS password, CONCAT(homedir, maildir) AS userdb_home, uid AS userdb_uid, gid AS userdb_gid, CONCAT('maildir:', homedir, maildir) AS userdb_mail, CONCAT('maildir:storage=', (quota*1024)) as userdb_quota FROM mail_users WHERE (username = '%u' OR email = '%u') AND ((imap = 1 AND '%Ls' = 'imap') OR (pop3 = 1 AND '%Ls' = 'pop3') OR '%Ls' = 'smtp' OR '%Ls' = 'sieve') +user_query = SELECT CONCAT(homedir, maildir) AS home, CONCAT('maildir:', homedir, maildir) AS mail, uid, gid, CONCAT('*:storage=', (quota*1024)) as quota_rule FROM mail_users WHERE (username = '%u' OR email = '%u') + +# this query is used for doveadm: +iterate_query = SELECT username AS user FROM mail_users diff --git a/templates/misc/configfiles/freebsd/dovecot2/usr_local_etc_dovecot_dovecot.conf b/templates/misc/configfiles/freebsd/dovecot2/usr_local_etc_dovecot_dovecot.conf new file mode 100644 index 00000000..f9f14e9d --- /dev/null +++ b/templates/misc/configfiles/freebsd/dovecot2/usr_local_etc_dovecot_dovecot.conf @@ -0,0 +1,138 @@ +### Dovecot 2.x configuration file ### + +mail_plugins = +protocols = imap lmtp sieve +listen = *, [::] + +mail_uid = vmail +mail_gid = vmail +mail_access_groups = vmail + +disable_plaintext_auth = yes +auth_mechanisms = plain login +auth_cache_negative_ttl = 1 mins +auth_cache_size = 1 k + +ssl = yes +#ssl_cert =