Benoit Tellier created JAMES-3543:
-------------------------------------

             Summary: Implement EmailSubmission storage (/get /set 
update+destroy /changes)
                 Key: JAMES-3543
                 URL: https://issues.apache.org/jira/browse/JAMES-3543
             Project: James Server
          Issue Type: Sub-task
          Components: JMAP
    Affects Versions: 3.6.0
            Reporter: Benoit Tellier
            Assignee: Antoine Duprat


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)



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to