Maclean IMAP ~ FAQ
This page features a set of frequently asked questions about the Maclean IMAP Server Engine. If you arrived at this page from outside our Web site you might like to go to the product’s home page to get an idea of what it’s all about.
How does this product compare with GoodServer’s IMAP4 SDK?
Based on our understanding of GoodServer’s documentation, there are two primary differences.
First, GoodServer’s SDK is implemented in Java while our product is written in C.
Second, there is little to GoodServer’s SDK compared to our product. The former provides a very thin layer that preprocesses IMAP commands and assists in the formatting of response data for IMAP FETCH commands. When you use it, you have to write code that does most of the work behind the commands and that generates the IMAP responses. You are left, for example, to implement the SEARCH command which is considerably complex.
Our IMAP Server Engine does every bit of work required of the protocol except that which must be done by the mail store (creating new folders, for example). The Engine does all RFC2822 and MIME parsing, performs all searching, completely manages subscription, and so on.
Do I need to know the IMAP protocol to use the IMAP Server Engine?
There are two and only two IMAP elements that you need to know about. One is to understand how UIDs are managed. The other is to understand IMAP’s use of flags. Beyond these, you will always fare better if you have a general understanding of how the protocol works but it is not required. And you absolutely do not have to write any actual IMAP code.
How scalable is it?
We have customers easily supporting several hundred simultaneous users and, with the thread-pooling option, it will accommodate four to five thousand. The engine is highly multi-threaded and does caching. We see no way that any IMAP server processor could be faster than ours. Of course, performance in practice may be constrained by the efficiency of the mail store you put behind it.
How much memory is used per session?
The amount of committed memory per IMAP session varies somewhat depending on the build options chosen but is typically around 32KB in Windows and 40KB in Linux (not including per-thread system overhead). The dynamic memory used per session necessarily varies greatly depending on what the session is doing; in some cases, entire email messages must be accommodated although only for the briefest periods.
If you have a question about the IMAP Server Engine that is not answered here, please email it to us. We will respond to you by email and add the question and answer to this FAQ if they promise to be of general interest.