Assembla home | Assembla project page
 

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