IMAP tool configuration
Note: instructions will be for Debian Linux.
Install postfix and courier imap
apt-get install postfix postfix-mysql apt-get install courier-imap courier-authmysql
mysql database structure for postfix and imap:
CREATE DATABASE maildb;
CREATE TABLE domains (
name char(50) NOT NULL PRIMARY KEY,
description char(100) default NULL
);
CREATE TABLE users (
username char(100) NOT NULL PRIMARY KEY,
pass char(40) NOT NULL
);
INSERT INTO domains VALUES('tools.assembla.com', 'for IMAP tool');
GRANT ALL PRIVILEGES ON maildb.* TO client@localhost IDENTIFIED BY '<password here>';
FLUSH PRIVILEGES;
Change /etc/postfix/main.cf file and add following lines:
virtual_uid_maps = static:106 virtual_gid_maps = static:107 virtual_mailbox_base = /opt/beta/mail virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf virtual_transport = virtual virtual_mailbox_limit = 51200000
create /etc/postfix/mysql_virtual_domains_maps.cf file
user = client password = <password here> hosts = 127.0.0.1 dbname = maildb table = domains select_field = description where_field = name
create /etc/postfix/mysql_virtual_mailbox_maps.cf file
user = client password = <password here> hosts = 127.0.0.1 dbname = maildb table = users select_field = CONCAT(SUBSTRING_INDEX(username,'@',-1),'/',SUBSTRING_INDEX(username,'@',1),'/') where_field = username
Create mail directory:
mkdir -m 0770 /opt/beta/mail chown postfix.postdrop /opt/beta/mail
Restart postfix:
postfix reload
Configure Courier IMAP
Add authmysql to authmodulelist="authmysql" in file /etc/courier/authdaemonrc
Edit /etc/courier/authmysqlrc
MYSQL_SERVER 127.0.0.1 MYSQL_DATABASE maildb MYSQL_USERNAME client MYSQL_PASSWORD <password here> MYSQL_UID_FIELD '106' MYSQL_GID_FIELD '107' MYSQL_USER_TABLE users MYSQL_LOGIN_FIELD username MYSQL_CLEAR_PWFIELD pass MYSQL_HOME_FIELD '/opt/beta/mail/' MYSQL_MAILDIR_FIELD CONCAT(SUBSTRING_INDEX(username,'@',-1),'/',SUBSTRING_INDEX(username,'@',1),'/') MYSQL_OPT 0
Restart courier auth daemon:
/etc/init.d/courier-authdaemon restart