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.