Table of Contents
Adding MailBoxes, WebMail, AntiSpam etc
Configure mailserver as described in Mail server (for aliases only)
Add Dovecot Mailbox support (''Maildir'' format)
Install missing packages
apt-get install dovecot-pop3d dovecot-imapd php5-imap php5-mcrypt
Create file /etc/dovecot/dovecot-mysql.conf.ext:
driver = mysql connect = host=127.0.0.1 dbname=postfix user=postfix password=<dbpassword2> default_pass_scheme = MD5-CRYPT user_query = SELECT '/var/vmail/%d/%n' as home, 3000 AS uid, 3000 AS gid FROM mailbox WHERE username = '%u' password_query = SELECT password FROM mailbox WHERE username = '%u'
Edit /etc/dovecot/conf.d/10-auth.conf
disable_plaintext_auth = no auth_mechanisms = plain login #!include auth-system.conf.ext !include auth-sql.conf.ext
Edit /etc/dovecot/conf.d/10-mail.conf
mail_location = maildir:/var/vmail/%d/%n:INDEX=/var/vmail/%d/%n/indexes
Edit /etc/dovecot/conf.d/10-ssl.conf
ssl = yes
Edit /etc/dovecot/conf.d/20-imap.conf
mail_max_userip_connections = 10
Edit /etc/dovecot/conf.d/auth-sql.conf.ext
passdb { driver = sql # Path for SQL configuration file, see example-config/dovecot-sql.conf.ext # args = /etc/dovecot/dovecot-sql.conf.ext args = /etc/dovecot/dovecot-mysql.conf.ext } userdb { driver = sql # args = /etc/dovecot/dovecot-sql.conf.ext args = /etc/dovecot/dovecot-mysql.conf.ext }
Restart services:
service dovecot restart service postfix restart
You can now test your e-mail server. Any errors are found as always in logfiles:
/var/log/auth.log /var/log/mail.log /var/log/syslog
Install RoundCube
cd /var/www/XYZ/www wget http://sourceforge.net/projects/roundcubemail/files/roundcubemail/1.0.1/roundcubemail-1.0.1.tar.gz\?use_mirror=garr -O rcb.tar.gz tar -zxvf rcb.tar.gz mv roundcubemail-1.0.1/ rcb/ chown -R www-data:www-data rcb cd rcb
Log in mysql
mysql -u root -p
Create roundcube mysql user
CREATE DATABASE roundcube; GRANT ALL PRIVILEGES ON roundcube.* TO roundcube@localhost IDENTIFIED BY '<rcpassword>'; FLUSH PRIVILEGES;
Add initial tables and data:
mysql -u roundcube -p roundcube < SQL/mysql.initial.sql
Add timezone info to php ini file /etc/php5/fpm/php.ini:
date.timezone = America/New_York
Go to http://XYZ/rcb/installer/. See that your environment is ok and click Next. On the ‘Create config’ page, you may want to change the following values:
product_name: <yourproductname> support_url: <yoururl> database name: roundcube database password: <rcpassword> default_host: localhost smtp_server: localhost language: en_US
Click Continue. Remove installer folder:
mv installer ../../
Configure one Roundcube installation to serve multiple domains
In case you have one installation of Roundcube to serve multiple domains hosted on one server you can create host-specific config files. These files have to be named like <hostname>.inc.php and are saved in Roundcube's config directory [1].
Roundcube does not read them by default so you need to set the 'include_host_config' option to true in the main config file.
If enabled, Roundcube will additionally load the file that matches the host name used to access Roundcube and merged the options configured there over the main config file. This means that they only need to contain the parameters that differ from the main configuration. Most common configurations on host-specific files are these:
<?php $rcmail_config['default_host'] = '<imap-host-for-this-domain>'; $rcmail_config['username_domain'] = '<the-domain-name>';
Setting 'username_domain' will make Roundcube append the correct domain part if a user only logs in with its user name (e.g. 'user' instead of user@domain1.com).
Instead of setting 'include_host_config' simply to true, you can specify a hash array assigning host names (key) to config file names (values) like the following example
$rcmail_config['include_host_config'] = array( 'mail.roundcube.net' => 'net_config.inc.php', 'mail.roundcube.com' => 'com_config.inc.php' );
Finally open RoundCube at http://XYZ/rcb/
[1] http://trac.roundcube.net/wiki/Howto_Config/Multidomains