Dovecot /postfix with Roundcube WebUI
Following guide was tested on CentOS 6.
Install epel repository:
wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm sudo rpm -Uvh remi-release-6*.rpm epel-release-6*.rpm
Remove sendmail and install dovecot:
yum remove sendmail yum install postfix dovecot chkconfig dovecot on chkconfig postfix on service dovecot start service postfix start
Install php if not yet installed:
yum install php
Install php extentions:
yum install php-xml php-pdo php-mbstring php-mcrypt php-intl php-mysql
Add to your php.ini:
extension=dom.so extension=pdo.so
You can locate your working php.ini with the command:
php -i | grep 'Configuration File'
Restart Apache
service httpd restart
Install some database server. In this guide we use MySQL.
yum install mysql-server chkconfig mysqld on service mysqld start
Set mysql root password:
mysqladmin -u root password <password>
Enter to mysql:
mysql -p
Create user for Rouncube:
CREATE USER 'roundcube'@'localhost' IDENTIFIED BY 'password';
Create database:
CREATE DATABASE roundcubemail;
Grant privileges:
GRANT ALL PRIVILEGES ON roundcubemail.* TO roundcube@localhost IDENTIFIED BY 'password'; FLUSH PRIVILEGES; exit
Download roundcube and extract it in web accessible directoty:
cd /var/www/html wget http://freefr.dl.sourceforge.net/project/roundcubemail/roundcubemail/0.9.5/roundcubemail-0.9.5.tar.gz tar xvf roundcubemail-0.9.5.tar.gz
For newest version refer to: http://roundcube.net/
Now you can give some shorter name to it, for example - webmail:
mv roundcubemail-0.9.5 webmail cd webmail chmod 777 -R temp chmod 777 -R logs
Go to web installer using url: http://YourDomainOrIP/webmail/installer
Press "NEXT" at the bottom of the page
Find "Database setup" section and set password for database that you've created in previous steps. You may also configure other options in this step.
Press "CREATE CONFIG" at the bottom of the page.
Two files will be generated and you should place them to your roundcube folder. In our case it is /var/www/html/webmail/config
cd /var/www/webmail/config nano main.inc.php #Copy content of the generated file from web page nano db.inc.php #Copy content of the generated file from web page
Press "CONTINUE"
Perform test and finish installation.
dovecot config
Basic management is available in webmin: Servers -> Dovecot IMAP/POP3 Server
for example we will done some basic config using CLI
Edit dovecot config, /etc/dovecot/dovecot.conf
protocols = imap mail_location = maildir:~/Maildir
check auth parameters in configfile etc/dovecot/conf.d/10-auth.conf
auth_mechanisms = plain login
set maillocation in /etc/dovecot/conf.d/10-mail.conf
mail_location = maildir:~/Maildir
List mailboxex
doveadm mailbox list
Create mailbox (if you set satndard linux auth this will not work for you)
doveadm mailbox create -u test test
Create mailbox (if Data source for users, homes and IDs set to Standard Unix user database)
useradd test mkdir /home/test/Maildir chown test:test /home/test/Maildir chmod -R 700 /home/test/Maildir
set password for newly created user:
passwd test
Now you can login to roundcube WebUI using created user "test". Use "yourdomain.com" or "localhost" as Server
Set dovecot autostart
chkconfig --level 345 dovecot on
test imap/ check mails from console You can install mutt
yum install mutt
After use commands like:
mutt -f imap://john@example.com@localhost mutt -f imap://ndi@localhost
After login you will get to the CLI UI and be able to see mailbox and send mails
Here is an example of working /etc/postfix/main.cf:
queue_directory = /var/spool/postfix command_directory = /usr/sbin daemon_directory = /usr/libexec/postfix data_directory = /var/lib/postfix mail_owner = postfix myhostname = localhost mydomain = mydomain.com myorigin = $mydomain inet_interfaces = all inet_protocols = all mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain unknown_local_recipient_reject_code = 550 alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases home_mailbox = Maildir/ debug_peer_level = 2 debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5 sendmail_path = /usr/sbin/sendmail.postfix newaliases_path = /usr/bin/newaliases.postfix mailq_path = /usr/bin/mailq.postfix setgid_group = postdrop html_directory = no manpage_directory = /usr/share/man sample_directory = /usr/share/doc/postfix-2.6.6/samples readme_directory = /usr/share/doc/postfix-2.6.6/README_FILES
You can map aliases with the following command:
postmap /path/to/file