You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by "David Leangen (Jira)" <se...@james.apache.org> on 2020/07/06 07:20:00 UTC

[jira] [Commented] (JAMES-3293) [Experiment] Re-write the SMTP API

    [ https://issues.apache.org/jira/browse/JAMES-3293?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17151825#comment-17151825 ] 

David Leangen commented on JAMES-3293:
--------------------------------------

I took a stab at this, just for fun, to try to get an appreciation of how much effort it would take to have a clean API that expresses [RFC5321|https://tools.ietf.org/html/rfc5321].

During my initial pass of the documents, I extracted nous like: "Session", "Client", "Command", "Response" and so on. However, I noticed that they use various terms in a sloppy way, probably interchangeably, like "reply" and "response", and neither seems to have any clear definition.

I noticed that many of the terms they use don't appear to be very well defined or explained in any precise terms.

So not only would it be a large effort to make sense out of the spec in order to create a Java API, I now question the entire effort itself. Perhaps the James approach of having simply an "implementation" (without a clear API) is actually the best we could reasonable hope for. Perhaps having a clean REST API is enough. The SMTP session *is* the API, and the other elements (like user management etc.) can be done via REST, so maybe we can just skip the whole idea of having a proper Java API.

In any case, I think I am done with this experiment for now.

Please feel free to continue discussing here if you like, even if I close this issue. :)

> [Experiment] Re-write the SMTP API
> ----------------------------------
>
>                 Key: JAMES-3293
>                 URL: https://issues.apache.org/jira/browse/JAMES-3293
>             Project: James Server
>          Issue Type: Sub-task
>          Components: SMTPServer
>            Reporter: David Leangen
>            Priority: Major
>
> Based on [an email thread|https://www.mail-archive.com/server-dev@james.apache.org/msg67373.html].
> To achieve better componentization, the APIs must be very clean, independent, and decoupled from other components.
> I will experiment with rewriting the SMTP API in order to solicit comments from the James community.



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

---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org