The Courier IMAP server optionally implements an experimental mail access protocol, dubbed "Simple Mail Access Protocol". SMAP is an experiment to provide enhanced mail processing beyond what's currently possible with IMAP.
SMAP is disabled by default, and must be explicitly enabled in the configuration file. SMAP's purpose is to prototype and develop advanced mail access functionality that's not possible with IMAP. Specifically:
- SMAP requires approximately 25% less bandwidth than IMAP to download large MIME attachments through low-bandwidth links. SMAP servers unwrap base64-encoded MIME attachments and send the raw, binary content to the client, eliminating the 25% base64 penalty. A similar optimization is also defined by an unofficial IMAP extension, but it is also a fairly new extension, and does not have wide client/server support.
- SMAP allows a single transaction to save a new message in the "Sent" folder, and mail it to its designated recipients. IMAP clients need to transmit the message a second time, using SMTP, requiring twice as much bandwidth and time as SMAP to do the same thing.
- SMAP folder names use the full UTF-8 character set; unlike IMAP no restrictions are placed on which characters may be included in folder names.
- SMAP implements both the "mark/expunge" paradigm as IMAP, and a simpler "delete" process.
- An SMAP client does not need to download the entire index of folder's contents when reopening a previously seen folder. When reopening a folder, the client receives a much shorter list of changes to the folder's contents since the last time the client had the folder opened. This is done by the client and server saving an index of folder's contents. After reopening the folder the server only needs to send a list of changes between the saved folder index, and the current folder index.
- Additional internationalization features are included in the design (but not yet used by the Courier implementation).
SMAP is disabled by default. Uncomment the SMAP_CAPABILITY
setting in the imapd
configuration file in order to enable SMAP. The Cone mail client supports SMAP.