Internet Mail Access Protocol

IMAP provides clients with a long-running protocol for accessing potentially large mailboxes with complex messages efficiently.

IPL Support

The IPL provides a highly efficient, online access client library. It supports the following capability string prefixes:

  • IMAP4rev1? - The IPL can in principle cope without IMAP4rev1, but many requests will be silently dropped.
  • AUTH - SASL authentication via IPL's in-built SASL support, automatically negotiated to the strongest authentication method mutually supported.
  • LOGINDISABLED - IPL handles the case where plaintext logins are disabled.
  • STARTTLS - IPL automatically negotiates TLS, including anonymous DH, where possible. IPL currently ignores certificate validation, although it provides access to the certificate digest for applications to detect changes.
  • MULTIAPPEND - The IPL can append multiple messages atomically via this extension, but it will still use COPY where possible.
  • BINARY - The IPL has full support for BINARY, and can append full BINARY messages as well as download them.
  • CHILDREN - The IPL will use child information in LISTs where supplied, although it will prefer using LISTEXT or LIST-EXTENDED where possible.
  • ID - The IPL can supply ID information when requested.
  • NAMESPACE - The IPL will use NAMESPACE to provide a consistent view of the mailbox layout.
  • MAILBOX-REFERRALS - The IPL will follow referrals where provided, however if you have the choice, don't use a server that does this - it's slower.
  • IDLE - Push notifications. They're cool.
  • UNSELECT - The IPL uses UNSELECT, or emulates it with wild abandon, instead of CLOSE.
  • ACL - The IPL uses MYRIGHTS to locally fail commands where possible.
  • LITERAL+ - The IPL will use non-synchronizing literals most of the time. It uses synchronizing literals for the first chunk of an APPEND, though.
  • UIDPLUS - The IPL will prime the local cache, and use this to create local URLs of message parts.
  • RIGHTS - The IPL supports the latest ACL specification.
  • CATENATE - The IPL can assemble messages directly on the server.
  • URLAUTH - The IPL will use this to generate signed URLs for submission via BURL.
  • ESEARCH - The IPL will use ESEARCH for more efficient searching.
  • CONDSTORE - The IPL will use this for fast resynchronization.
  • LIST-EXTENDED - The IPL uses this where available.
  • LISTEXT - The IPL will use this if LIST-EXTENDED is not available.
  • ACL2 - The IPL supports getting MYRIGHTS data via LIST-EXTENDED if possible.
  • SASL-IR - The IPL will send an initial response if possible.
  • POSTADDRESS - The IPL will convert IMAP mailboxes into email addresses for transmission if possible.