Distributed James Server — Implemented standards

This page details standards implemented by the distributed server.

Message formats

  • RFC-5322 Internet Message Format (MIME)

  • RFC-2045 Format of Internet Message Bodies

  • RFC-3464 An Extensible Message Format for Delivery Status Notifications

  • James allow emmit DSNs from the mailet container.

  • RFC-8098 Message Disposition Notification

TLS & authentication

  • RFC-2595 TLS for IMAP, POP3, SMTP (StartTLS)

  • RFC-8314 Implicit TLS

  • RFC-4959 SASL IR: Initial client response

  • RFC-4616 SASL plain authentication

  • RFC-7628 SASL for OAUTH

  • Implemented for IMAP and SMTP

  • Support for OIDC standard only.

SMTP

  • RFC-5321 SMTP Protocol

  • RFC-974 MAIL ROUTING AND THE DOMAIN SYSTEM

  • RFC-3461 Simple Mail Transfer Protocol (SMTP) Service Extension for Delivery Status Notifications (DSNs)

  • Requires extra configuration.

  • RFC-1652 SMTP Service Extension for 8bit-MIME transport

  • RFC-1830 SMTP Service Extensions for Transmission of Large and Binary MIME Messages

  • RFC-1869 SMTP Service Extensions

  • RFC-1870 SMTP Service Extension for Message Size Declaration

  • RFC-1891 SMTP Service Extension for Delivery Status Notifications

  • RFC-1893 Enhanced Mail System Status Codes

  • RFC-2034 SMTP Service Extension for Returning Enhanced Error Codes

  • RFC-2142 Mailbox Names For Common Services, Roles And Functions

  • RFC-2197 SMTP Service Extension for Command Pipelining

  • RFC-2554 ESMTP Service Extension for Authentication

  • RFC-1893 Enhanced Mail System Status Codes

LMTP

  • RFC-2033 LMTP Local Mail Transfer Protocol

IMAP

The following IMAP specifications are implemented:

  • RFC-3501 INTERNET MESSAGE ACCESS PROTOCOL - VERSION 4rev1

  • RFC-2177 IMAP IDLE (mailbox scoped push notifications)

  • RFC-9208 IMAP QUOTA Extension

  • RFC-2342 IMAP namespace

  • RFC-2088 IMAP non synchronized literals

  • RFC-4315 IMAP UIDPLUS

  • RFC-5464 IMAP Metadata (annotations on mailboxes)

  • RFC-4551 IMAP Condstore

  • RFC-5162 IMAP QRESYNC (synchronisation semantic for deleted messages)

  • We don’t store a log of deleted modseq thus clients should rely on known sequences mechanism to optimize exchanges.

  • RFC-4978 IMAP Compress (optional)

  • RFC-5161 IMAP ENABLE

  • RFC-6851 IMAP MOVE command

  • RFC-5182 IMAP Extension for Referencing the Last SEARCH Result

  • RFC-5032 IMAP WITHIN (for relative date search semantic)

  • RFC-4731 IMAP ESEARCH: extentions for IMAP search: new options like min, max, count.

  • RFC-3348 IMAP Child Mailbox Extension

  • RFC-8508 IMAP Replace Extension

  • RFC-7889 IMAP Extension for APPENDLIMIT

  • RFC-8474 IMAP Extension for Object Identifiers

  • RFC-2971 IMAP ID Extension

  • RFC-8438 IMAP Extension for STATUS=SIZE

  • RFC-5258 IMAP LIST Command Extensions

  • RFC-5819 IMAP4 Extension for Returning STATUS Information in Extended LIST

  • RFC-8440 IMAP4 Extension for Returning MYRIGHTS Information in Extended LIST

  • RFC-6154 IMAP LIST Extension for Special-Use Mailboxes

  • RFC-8514 IMAP SAVEDATE Extension

Partially implemented specifications:

  • RFC-4314 IMAP ACL

  • ACLs can be created and managed but mailbox not belonging to one account cannot, as of today, be accessed in IMAP.

JMAP

  • RFC-8620 Json Metadata Application Protocol (JMAP)

  • RFC-8621 JMAP for emails

  • RFC-8887 JMAP over websockets

  • RFC-9007 Message Delivery Notifications with JMAP.

  • RFC-8030 Web PUSH: JMAP enable sending push notifications through a push gateway.

JMAP is intended to be a new standard for email clients to connect to mail stores. It therefore intends to primarily replace IMAP + SMTP submission. It is also designed to be more generic. It does not replace MTA-to-MTA SMTP transmission.

The annotated documentation presents the limits of the JMAP RFC-8621 implementation part of the Apache James project.

Some methods / types are not yet implemented, some implementations are naive, and the PUSH is not supported yet.

Users are invited to read these limitations before using actively the JMAP RFC-8621 implementation, and should ensure their client applications only uses supported operations.

POP3

  • RFC-1939 Post Office Protocol - Version 3

ManageSieve

Support for manageSieve is experimental.

  • RFC-5804 A Protocol for Remotely Managing Sieve Scripts

Sieve

  • RFC-5228 Sieve: An Email Filtering Language

  • RFC-5173 Sieve Email Filtering: Body Extension

  • RFC-5230 Sieve Email Filtering: Vacation Extension