This file lists modified examples from http://www.howtoforge.com/virtual-users-domains-postfix-courier-mysql-squirrelmail-debian-lenny-p2 to be usable with the postfixadmin default DB layout. Written 2010-04-28. /etc/postfix/ mysql-virt-domains.cf: user = mail_admin password = secretpassword dbname = virtmail query = SELECT domain AS virtual FROM domain WHERE domain='%s' hosts = 127.0.0.1 mysql-virt-email2email.cf: user = mail_admin password = secretpassword dbname = virtmail query = SELECT username FROM mailbox WHERE username='%s' hosts = 127.0.0.1 mysql-virt-forwardings.cf: user = mail_admin password = secretpassword dbname = virtmail query = SELECT goto FROM alias WHERE address='%s' hosts = 127.0.0.1 mysql-virt-mailboxes.cf: user = mail_admin password = secretpassword dbname = virtmail query = SELECT CONCAT(SUBSTRING_INDEX(username,'@',-1),'/',SUBSTRING_INDEX(username,'@',1),'/') FROM mailbox WHERE username='%s' hosts = 127.0.0.1 sasl/smtpd.conf: pwcheck_method: saslauthd mech_list: PLAIN LOGIN allow_plaintext: true auxprop_plugin: mysql sql_hostnames: 127.0.0.1 sql_user: mail_admin sql_passwd: secrectpassword sql_database: virtmail sql_select: SELECT password FROM mailbox WHERE username = '%u' /etc/courier/ authmysqlrc: MYSQL_SERVER localhost MYSQL_USERNAME mail_admin MYSQL_PASSWORD secretpassword MYSQL_PORT 0 MYSQL_DATABASE virtmail MYSQL_USER_TABLE mailbox MYSQL_CRYPT_PWFIELD password MYSQL_UID_FIELD 800 MYSQL_GID_FIELD 800 MYSQL_LOGIN_FIELD username MYSQL_HOME_FIELD "/var/spool/vmail" MYSQL_MAILDIR_FIELD CONCAT(SUBSTRING_INDEX(username,'@',-1),'/',SUBSTRING_INDEX(username,'@',1),'/') #Note to myself: It's possible to avoid the concat construct, take a closer look at the mailbox table /etc/pam.d/smtp: auth required pam_mysql.so user=mail_admin passwd=secretpassword host=127.0.0.1 db=virtmail table=mailbox usercolumn=username passwdcolumn=password crypt=1 account sufficient pam_mysql.so user=mail_admin passwd=secretpassword host=127.0.0.1 db=virtmail table=mailbox usercolumn=username passwdcolumn=password crypt=1