Closed TopicStart new topicStart Poll

> XMAIL + Courier IMAP + Squirrel Webmail, Howto Setup ...
Posted: Oct 11 2006, 11:09 AM
Quote Post

No - I'm not an answering script ...
Group Icon

Group: Admin
Posts: 6631
Member No.: 195
Joined: 19-June 02



This document was created from a need to use Squirrelmail with an XMail backend. XMail was desired due to it's capabilities (pop3 retrieval, smtp server) and the fact that it uses Maildirs instead of a mailbox. I tried to get dbmail to work on my server without success (Many thanks to Aaron Johnson for putting up with me).


Like I said above XMail is a mail server for Linux (I believe there is a version for windows also but don't quote me on that) which is very robust and offers features most other mail servers don't. It includes a POP3 Server, POP3 mail retrieval from an ISP mail account, SMTP, Multiple Domain support, SMTP Authentication and there are many plugins available for Xmail to extend it. Courier-IMAP is an IMAP Server with support for Maildirs. Seems to have a small footprint and supports many types of authentication (MySql, PAM, userdb, Shadow passwords, MD5, LDAP, Pgsql).


Apache or some other web server
Working installation of XMail
Working installation of MySql (this isn't required but is how I set it up)
C++ compiler

This document does not cover the installation of Apache, XMail, MySql, the compilers, GDBM, perl or php. Please refer to the installation documents available for those products.


Download the following:
Courier-IMAP from
Squirrelmail from
If you are running Red Hat 8.0 there is an RPM available for Squirrelmai l installation

Doing the Installation

This should be a fairly simple process. You will want to be somewhat comfortable with the command line and basic admin skills. You will need root access for most of this procedure. During this procedure anything you see in italics is a command line command (i.e. mkdir /tm/imap)

You will want to create a working directory. You can name it anything you like but for this example we'll use /tmp/imap and copy the above downloads to this directory. Your filenames may differ if you download a different version of any of these files.

mkdir /tmp/imap
cp courier-imap- /tmp/imap
cp squirrelmail-1.2.9.tar.gz /tmp/imap
cd /tmp/imap

OK now that the files are in our working directory we can start the real fun. We need to unzip and untar the files. We'll start with courier-imap:

gunzip courier-imap-

That should create a file called courier-imap- now you need to untar this:

tar -xf courier-imap-

This will create a directory called courier-imap- Of course your tar file is still there and there is probably a faster way to get through this process but seein as how I'm still learning Linux this is how I do it. OK, now change to the courier-imap directory and run the following commands:

cd courier-imap-
make check
make install
make install-configure

If all goes well we can then proceed on to the next steps. If you get errors during the above process you will need to refer to the documentation for courier-imap as fixing these errors is beyond the scope of this document and probably beyond the scope of my knowledge unless it's something obvious.

Now, edit /usr/lib/courier-imap/etc/authmysqlrc and change everything there to meet your needs. Here's pieces of my authmysqlrc, just the lines I changed:

MYSQL_SERVER localhost
MYSQL_USERNAME mysqluser <--- This is the mysql user
MYSQL_PASSWORD mysqluser-password <--- This is the password for the mysql user
MYSQL_SOCKET /var/lib/mysql/mysql.sock <--- This Should be the path to yours
# MYSQL_PORT 0 <--- commented this out. Use either mysql.sock or this
MYSQL_DATABASE mailusers <--- This is the mysql database
MYSQL_USER_TABLE passwd <--- This is the table in the mysql database
# MYSQL_CRYPT_PWFIELD crypt <--- commented this out as I use the clear password
MYSQL_CLEAR_PWFIELD clear <--- This is the password field name in the mysql database passwd table
DEFAULT_DOMAIN <--- Change to your domain name
MYSQL_MAILDIR_FIELD maildir <--- This is the maildir field name in the mysql database passwd table

Now, edit /usr/lib/courier-imap/etc/authdaemonrc. Here's the line I changed:


Download this file (create_database.mysql) to create the database, table and user. Once you download the file you have to change 1 thing in the file and that's the password entry. Change this entry to whatever you want the MySQL user password to be. Here's the line in the file, just change the password:

GRANT ALL ON mailusers.* TO courier@localhost IDENTIFIED BY 'password';

After you change the password entry run this:

mysql -uroot -p < create_database.mysql

Now, we need to add users. You can do this now or later but you won't be able to login via squirrelmail until you add users:

mysql -ucourier -ppassword mailusers
INSERT INTO passwd VALUES('','password','full name','0','0','/home/user',
q <--- This exits from the mysql prompt

For the uid (user ID) and gid (group id)(the 2 numbers after 'full name' and before '/home/user'), you must use the same uid and gid as the user that runs the xmail daemon. If you don't, you will receive permission denied errors from squirrelmail because it doesn't have permission to see the /var/MailRoot/domains/ directory. I don't know if this is a security issue or not. Maybe someone can fill me in here. Also, the '/home/user' entry can be the '/var/MailRoot/domains/' dir if the user doesn't have an account on the machine.

Now install squirrelmail following the instructions provided with squirrelmail. Once squirrelmail is installed:

cd /path/to/squirrelmail
cd config

In the Main Menu pick option # 2 (Server Settings)
Change #4 (Use Sendmail/SMTP) to 'SMTP' (no quotes)
Change #6 (SMTP Server) to 'localhost' (no quotes)
Change #10 (Server) to 'courier' (no quotes)
Change #12 (Delimeter) to '.' (no quotes)
Return to Main Menu
In the Main Menu pick option #3 (Folder Defaults)
Change #1 (Default Folder Prefix) to 'INBOX.' (no quotes, don't forget the period after INBOX)
Change #16 (Auto Create Special Folders) to 'True' (no quotes)
Save Data

Now, we need to start everything. I assume xmail is already running. If not, start it using:

/etc/rc.d/init.d/xmail start <--- the path may differ between different Linux distros

Now start the Courier-IMAP server using:

/usr/lib/courier-imap/libexec/imapd.rc start
/usr/lib/courier-imap/libexec/imapd.rc stop <--- This stops the Courier-IMAP Server

Be sure to add the above line to your startup script along with the stop command. So, now we're ready to test. Login to squirrelmail using the user name you entered into the mysql database earlier. You can login either as user or If you just use user then will be added to the login in the background. If there is already mail for the created user then you should see mail in the squirrelmail inbox, if no mail exists for the user then it will show the folder as empty. You will initially only see the Inbox and Sent folders in squirrelmail. Click the refresh folders link over Inbox and it should create the Drafts and Trash folders for you.

If you have questions, want to rant or whatever, visit the bulletin board and post there. Hopefully we can get some useful discussion going over there.

Creating/Importing Users into MySql

Unfortunately I'm not very adept at creating shell scripts so at the moment there is no tool to import your existing users into the mysql database. Maybe in the future I can work on providing a script to make this process easier. If anyone would like to contribute a script that would be greatly appreciated.

Special Thanks

I would like to put out a big Thank you to Aaron Johnson who spent many hours over Instant messenging with me and also logged into my server to try and get dbmail to work with XMail on my system. Even though it was unsuccessful I learned a lot about ./configure scripts, folder and file permissions and the way XMail works. Here is a link to Aaron's document for getting XMail, dbmail and squirrelmail to all play together nicely


-- Download XMail Queue Manager 1.46 NOW: XMail Server Tools
-- Cross platform remote queue management!
-- Message analyzing on the fly!
-- Builtin diagnostics knowledge base!
-- Manages multiple mail queues!

Sponsored by
CD-Produktion und DVD-Produktion and Homestaging Saarland - Immobilien schneller verkaufen in der Region Saarland, Rheinland-Pfalz und Luxembourg
PMEmail PosterUsers Website
0 User(s) are reading this topic (0 Guests and 0 Anonymous Users)
0 Members:
« Next Oldest | Documentation and Knowledge Base | Next Newest »

Closed TopicStart new topicStart Poll