Replace POP3 with IMAP to extend the reach of users' email
Published: 08 May 2003 11:43 BST
Compile and install Courier-IMAP
Follow the instructions of the README file in the Courier-IMAP archive to compile and install Courier-IMAP. In the configure step, make sure you provide the paths to the MySQL headers, as described here:
$ ./configure --with-authmysql --without-authpgsql \
> --with-mysql-libs=/usr/local/mysql/lib/mysql \
> --with-mysql-includes=/usr/local/mysql/include/mysql
Courier-IMAP installs everything in /usr/lib/courier-imap by default. You will want to add this to your list of files to back up, especially the etc subdirectory.
Create the user database
Now you need to create a MySQL database to store the user accounts. The User table in MySQL sidebar shows a create table statement that sets up the required fields in the database for your email system.
Configure Courier-IMAP
The main file you need to edit to configure Courier-IMAP is /usr/lib/courier-imap/etc/authmysqlrc. This file contains the connection and column settings for the user table you just added to MySQL. Change these settings where they are in the file, rather than moving them around, so that if you upgrade Courier-IMAP later, it will preserve your settings. Set the values as follows:
MYSQL_SERVER dbserver
MYSQL_USERNAME user
MYSQL_PASSWORD password
MYSQL_PORT 3306
MYSQL_DATABASE maildb
MYSQL_USER_TABLE users
MYSQL_CRYPT_PWFIELD crypt
MYSQL_UID_FIELD uid
MYSQL_GID_FIELD gid
MYSQL_LOGIN_FIELD id
MYSQL_HOME_FIELD home
MYSQL_NAME_FIELD name
MYSQL_MAILDIR_FIELD CONCAT(home,'/',maildir)
Next, edit the authdaemonrc file in the same directory, removing the extra authentication services from the authmodulelist setting:
authmodulelist='authmysql authpam'
Courier-IMAP comes with a single System V script to start all of the servers. However, the services are disabled by default, so you have to edit the configuration files for the services you want to run to enable them. To enable the IMAP service, edit the imapd file in this directory, and set:
IMAPDSTART=YES
To enable the POP3 service, edit the pop3d file and set:
POP3DSTART=YES
Now you're ready to start Courier-IMAP. You can start each of these services individually, using the scripts in /usr/lib/courier-imap/libexec, or if you have a System V system, you can use the init.d script from the source directory to configure Courier-IMAP to run when the server starts.
To set up the System V script, change back to your source directory and type the following as root:
# cp courier-imap.sysvinit /etc/rc.d/init.d/courier-imap
# chmod 744 /etc/rc.d/init.d/courier-imap
# /etc/rc.d/init.d/courier-imap start
Now Courier-IMAP is up and running and using the MySQL database that was created to authenticate users. But you still need to get Postfix to deliver mail to the virtual users.
What's next?
In the next article, I will configure Postfix to deliver mail to virtual users in the MySQL database that I created in this article, set up the UNIX environment for the virtual accounts, and discuss the DNS issues I need to resolve to get the email delivered correctly to the new server. By the end of the next article, you will have a fully-functioning email server capable of sending and receiving email for multiple domains.
For a weekly round-up of the enterprise IT news, sign up for the Tech Update newsletter.
Let the editors know what you think in the Mailroom.
Full Talkback thread
2 comments






