When setting up your own e-mail system, there can be some difficulties even
after you have the server set up on your network, in terms of sending and
receiving mail for local users. At this juncture, you have to make sure that the
mail is going to the appropriate user. For instance, Postfix accepts incoming
mail for local users and relays mail from local users out to wherever it's
going. When it receives mail, it drops it into a mailbox file for the UNIX user
account. To read this mail, you need to read the mailbox file directly, with a
program that is capable of reading the raw file. However, even with the powerful
multiuser capabilities of Linux, you don't want to force your users to log on to
the server and use a text-based mail reader, as you may end up on the
street.Fortunately, there are several e-mail protocols for retrieving e-mail from a server. By far, the most common is Post Office Protocol, otherwise known as POP3. Nearly all mail clients speak POP3. With POP3, the mail client connects to the server, downloads all new e-mail, and disconnects. This works fine for people who use only a single computer for all of their e-mail, but if they want to check their e-mail from any other computer, they won't be able to get to all of their messages. They also risk having their messages scattered across multiple computers. Using Internet Message Access Protocol (IMAP) as an alternative is a good solution to this problem. In this article, I am going to add an IMAP server to my current e-mail setup and configure virtual users using a MySQL database.
Read the previous installments in this series
To catch up on the creation of this e-mail setup, check out the previous article in this series:
What is IMAP?
IMAP provides a compelling alternative to POP3. With IMAP, all mail stays on the server, and clients manipulate the status. When you connect with IMAP clients from different computers, you see the same set of folders and all of your mail. If you read a message on one computer, it is read when you check it from another. If you delete it on one, it's deleted everywhere.
For people who work with e-mail offline or over a dialup connection, IMAP has many solutions for managing e-mail. Mail clients can cache messages and then update message status on the server when they reconnect. Messages can be left on the server and deleted while still being unread, without having to download first. The main downside of IMAP is that leaving mail on the server consumes a lot more disk space in one place, rather than being distributed across a bunch of clients. This makes backups much easier, but you may have to add disk space or implement quotas.
Courier-IMAP
Courier-IMAP is the IMAP server I've chosen for this e-mail system. It provides both IMAP and POP3 servers, so your users can choose either. It can access mail for users who don't have a local UNIX account (“virtual” users), and by putting the account information in a MySQL database, it can share these accounts with Postfix.
Courier-IMAP uses a directory-based file format called Maildir instead of traditional UNIX mailboxes. By using individual files for each mail, Maildir mailboxes don't have locking issues, and opening a large mailbox is fast.
You can download the source tarball for Courier-IMAP. Courier-IMAP is one part of a complete mail suite, but most of the other parts of the suite are not as widely used as the IMAP server. It also supports SSL-encrypted connections if you compile against the OpenSSL libraries.


















There are currently no comments for this post.