Courier-IMAP 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.