Uploaded image for project: 'James Server'
  1. James Server
  2. JAMES-2884 Update JMAP implementation to conform to RFC 8620/8621
  3. JAMES-3543

Implement EmailSubmission storage (/get /set update+destroy /changes)

    XMLWordPrintableJSON

Details

    • Sub-task
    • Status: Open
    • Major
    • Resolution: Unresolved
    • 3.6.0
    • None
    • JMAP
    • None

    Description

      In order to deliver a good subset of the JMAP RFC-8621 implementation in a timely fashion, we did only implement EmailSubmission/set create in a shoot and forget fashion, without underlying storage setted up.

      This, however, do not enable advanced usage of a submission server (tracking delivery status, cancelling sends, seeing related MDNs and DSNs, etc...).

      To benefit from these features, one would need to implement persistance for EmailSubmission (API and contract test in server/data/data-jmap + memory + cassandra implementations). A per account changelog for EmailSubmission would also be needed for the /changes method. And finaly the /query endpoint would likely require indexation in ElasticSearch, and a scrolling search for memory.

      Needless to say, this is expensive to write.

      We might consider naive versions in a temporary fashion, in order to improve spec compliance:

      • EmailSubmission/get could always return notFount.
      • EmailSubmission/query always returns empty
      • EmailSubmission/set update could be always rejected
      • EmailSubmission/set destroy could be always rejected

      That would technically be enough for spec compliance.

      This might help interoperability with clients implementing advanced submission features (and expecting them to be here - ie via the use of back-references)

      Attachments

        Activity

          People

            aduprat Antoine Duprat
            btellier Benoit Tellier
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated: