Le 06/07/2020 à 07:13, David Leangen a écrit :
> Hey Benoit,
>
>> Now, that being said, I believe we should always define a "purpose" for
>> an API, and here we mixes things in my opinion.
> Yes, very good point. I agree 100%
>
>
>
>> Are we defining an API for building any arbitrary SMTP server?
> My somewhat vague thought is: I get the impression that in the Java world 
> Apache James has become a kind of reference implementation. It could be that 
> I have just not found anything else, or that nothing else exists, but in any 
> case James is “important” in the intersection of “email” and “JVM”.
I don't think people are interested by an API allowing them to implement
SMTP themselves. (That is quite some work!)

I believe people are interested by a working SMTP implementation where
they can "plug" there behaviors or add the commands they miss.
> I think we should take it upon ourselves to view James and take on the role 
> as the “reference implementation” for the JVM.
>
> This means that we ought to produce java apis that are compliant to the 
> specs, that anybody could implement if they wanted to as technology develops. 
> It also implies that we need to give the API lots of thought as this would 
> become a de-facto industry standard, at least in the JVM world. Heck, if we 
> do a really great job maybe we can even inspire improvements to the email 
> spec itself. We should aim high.
>
>
> Take the fictitious case of a new, awesome “super-nutty” technology that is 
> even better than Netty, but works in a completely different way. I should be 
> able to make my own super-nutty implementation of smtp based on the James 
> reference API.

Globally +1, if it lives as a separate library, we need a more
declarative way off assembling things...

(but again we need to consider the costs - return over investment ratio)

>> Or are we shipping an SMTP implementation with APIs to add new commands
>> support ?
> I am no expert in the spect, but aren’t you referring to ESMTP? Or do you 
> mean something else?
>
> Even if we make a “reference api for Java”, there is nothing from stopping us 
> from making an extension mechanism.
That mechanism already exists: one can register its own "protocol
handlers", be them extra commands or hooks into existing commands.

Note that "standard SMTP commands" are bundled into a single
ProtocolHandler, not relying on it means you defines your very own SMTP
commands.

Cheers,

Benoit


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

Reply via email to