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 Norman Maurer <no...@googlemail.com> on 2011/09/11 19:44:18 UTC
[PROPOSAL] Replacing RemoteDelivery (LONGTERM)
Hi there,
I think its time to finally get rid of javamail for sending emails via
SMTP / SMTPS and use something more performant / better suited for
heavy usage. javamail just sucks in many ways for SMTP Delivery in a
way that a real server need it. It just don't expose all the needed
stuff that we need. Like proper de-decting of 5xx code in the greeting
etc.
So I started to work on a nio based SMTP / SMTPS client, which is
build on top of netty. I think its now ready for a first review:
https://github.com/normanmaurer/niosmtp
It still lacks a few things that we need (also unit tests). Like SMTP
AUTH and STARTTLS but I'm working on it (and I love contributions ;)).
I really want to get it complete and use it as a replacement of
javamail in our "RemoteDelivery" code. I also thing that we should
move the RemoteDelivery code out of the Mailets and use a "real
service" for it. This will make it easier to extend it and also expose
stats etc. So I propose to start to work on a replacement as an
experimental code base atm. We would still ship the old code till we
dedicide that the new one is ready for primetime.
For the new code I plan to allow to hook in custom
"DelayCalculationPolicy" and also add support for notifiers which get
called after each delivery. This will allow us todo smarter things in
the future...
WDYT ?
Bye,
Norman
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
Re: [PROPOSAL] Replacing RemoteDelivery (LONGTERM)
Posted by Robert Burrell Donkin <ro...@gmail.com>.
On Sun, Sep 11, 2011 at 6:44 PM, Norman Maurer
<no...@googlemail.com> wrote:
> Hi there,
>
> I think its time to finally get rid of javamail for sending emails via
> SMTP / SMTPS and use something more performant / better suited for
> heavy usage. javamail just sucks in many ways for SMTP Delivery in a
> way that a real server need it. It just don't expose all the needed
> stuff that we need. Like proper de-decting of 5xx code in the greeting
> etc.
+1 :-)
> So I started to work on a nio based SMTP / SMTPS client, which is
> build on top of netty. I think its now ready for a first review:
> https://github.com/normanmaurer/niosmtp
I'd be happy to see client code for email protocols added to James.
(I still find myself using the IMAP client in
mailbox-integration-tester. I should really tidy it up...)
> It still lacks a few things that we need (also unit tests). Like SMTP
> AUTH and STARTTLS but I'm working on it (and I love contributions ;)).
> I really want to get it complete and use it as a replacement of
> javamail in our "RemoteDelivery" code. I also thing that we should
> move the RemoteDelivery code out of the Mailets and use a "real
> service" for it. This will make it easier to extend it and also expose
> stats etc. So I propose to start to work on a replacement as an
> experimental code base atm. We would still ship the old code till we
> dedicide that the new one is ready for primetime.
+1 :-)
> For the new code I plan to allow to hook in custom
> "DelayCalculationPolicy" and also add support for notifiers which get
> called after each delivery. This will allow us todo smarter things in
> the future...
>
> WDYT ?
Sounds good but be careful about pulling into your code base from
derivative works
Robert
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
Re: [PROPOSAL] Replacing RemoteDelivery (LONGTERM)
Posted by Bernd Fondermann <be...@googlemail.com>.
On Mon, Sep 12, 2011 at 12:07, Norman Maurer
<no...@googlemail.com> wrote:
> Hi Bernd,
>
> I'm currently thinking about it, yeah. Github was the quickest way for
> me to get started and also learn a bit more about git so I started it
> there. But I agree it would make sense to move it to james sometimes
> as it is really related..
>
> Bye,
> Norman
+1. I would only replace the current SMTP impl with a James-hosted replacement.
Bernd
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
Re: [PROPOSAL] Replacing RemoteDelivery (LONGTERM)
Posted by Norman Maurer <no...@googlemail.com>.
Hi Bernd,
I'm currently thinking about it, yeah. Github was the quickest way for
me to get started and also learn a bit more about git so I started it
there. But I agree it would make sense to move it to james sometimes
as it is really related..
Bye,
Norman
2011/9/12 Bernd Fondermann <be...@googlemail.com>:
> On Sun, Sep 11, 2011 at 19:44, Norman Maurer
> <no...@googlemail.com> wrote:
>> Hi there,
>>
>> I think its time to finally get rid of javamail for sending emails via
>> SMTP / SMTPS and use something more performant / better suited for
>> heavy usage. javamail just sucks in many ways for SMTP Delivery in a
>> way that a real server need it. It just don't expose all the needed
>> stuff that we need. Like proper de-decting of 5xx code in the greeting
>> etc.
>>
>> So I started to work on a nio based SMTP / SMTPS client, which is
>> build on top of netty. I think its now ready for a first review:
>> https://github.com/normanmaurer/niosmtp
>>
>> It still lacks a few things that we need (also unit tests). Like SMTP
>> AUTH and STARTTLS but I'm working on it (and I love contributions ;)).
>
> We all do :-))
> So, any plans to bring this code into James SVN?
>
> Bernd
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
> For additional commands, e-mail: server-dev-help@james.apache.org
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
Re: [PROPOSAL] Replacing RemoteDelivery (LONGTERM)
Posted by Bernd Fondermann <be...@googlemail.com>.
On Sun, Sep 11, 2011 at 19:44, Norman Maurer
<no...@googlemail.com> wrote:
> Hi there,
>
> I think its time to finally get rid of javamail for sending emails via
> SMTP / SMTPS and use something more performant / better suited for
> heavy usage. javamail just sucks in many ways for SMTP Delivery in a
> way that a real server need it. It just don't expose all the needed
> stuff that we need. Like proper de-decting of 5xx code in the greeting
> etc.
>
> So I started to work on a nio based SMTP / SMTPS client, which is
> build on top of netty. I think its now ready for a first review:
> https://github.com/normanmaurer/niosmtp
>
> It still lacks a few things that we need (also unit tests). Like SMTP
> AUTH and STARTTLS but I'm working on it (and I love contributions ;)).
We all do :-))
So, any plans to bring this code into James SVN?
Bernd
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
Re: [PROPOSAL] Replacing RemoteDelivery (LONGTERM)
Posted by Norman Maurer <no...@googlemail.com>.
Hi Eric,
comments inline...
2011/9/14 Eric Charles <er...@gmail.com>:
> Hi Norman,
>
> I was wondering if it would be possible to have a adapter layer so we can
> simply replace the current javamail with the niosmtp jar without changing
> server code. Thinking more about, I don't think it makes sense as we will
> have to add new function to that layer to support the new features. And NIO
> apis are quite different
I don't think tis does make sense. So no no adapter layer for us...
>
> I have forked your github niosmtp and had a first look. I hope to have time
> for further test.
Nice. I think SMTP and SMTPS are quite stable. Need to test SMTP +
STARTTLS a bit more as I just finished it (unit tests for it are
missing atm).
>
> As we said earlier, Remote and Local Delivery should be part of the service
> and not implemented as mailets.
Exactly. These are "core" services..
>
> Are you thinking in niosmtp to implement some configurables hook so the
> server could simply use it based on its configuration?
> Do you see the DelayCalculationPolicy as part of niosmtp or part of server?
Part of the server/service.
niosmtp should just be used to deliver the email. Nothing more...
>
> The only drawback I can see is that javamail is widely tested against all
> sorts of mail servers since years. We will have to test niosmtp against a
> representative number of servers also.
Yeah javamail is used widely. But my statement still stands...
javamails SMTPTransport just sucks in many ways and has limitations
all over the place. Thats why I started niosmtp ;)
>
> Thx.
>
>
> On 11/09/11 10:44, Norman Maurer wrote:
>>
>> Hi there,
>>
>> I think its time to finally get rid of javamail for sending emails via
>> SMTP / SMTPS and use something more performant / better suited for
>> heavy usage. javamail just sucks in many ways for SMTP Delivery in a
>> way that a real server need it. It just don't expose all the needed
>> stuff that we need. Like proper de-decting of 5xx code in the greeting
>> etc.
>>
>> So I started to work on a nio based SMTP / SMTPS client, which is
>> build on top of netty. I think its now ready for a first review:
>> https://github.com/normanmaurer/niosmtp
>>
>> It still lacks a few things that we need (also unit tests). Like SMTP
>> AUTH and STARTTLS but I'm working on it (and I love contributions ;)).
>> I really want to get it complete and use it as a replacement of
>> javamail in our "RemoteDelivery" code. I also thing that we should
>> move the RemoteDelivery code out of the Mailets and use a "real
>> service" for it. This will make it easier to extend it and also expose
>> stats etc. So I propose to start to work on a replacement as an
>> experimental code base atm. We would still ship the old code till we
>> dedicide that the new one is ready for primetime.
>>
>> For the new code I plan to allow to hook in custom
>> "DelayCalculationPolicy" and also add support for notifiers which get
>> called after each delivery. This will allow us todo smarter things in
>> the future...
>>
>> WDYT ?
>>
>> Bye,
>> Norman
>>
Thanks,
Norman
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
Re: [PROPOSAL] Replacing RemoteDelivery (LONGTERM)
Posted by Eric Charles <er...@gmail.com>.
Hi Norman,
I was wondering if it would be possible to have a adapter layer so we
can simply replace the current javamail with the niosmtp jar without
changing server code. Thinking more about, I don't think it makes sense
as we will have to add new function to that layer to support the new
features. And NIO apis are quite different
I have forked your github niosmtp and had a first look. I hope to have
time for further test.
As we said earlier, Remote and Local Delivery should be part of the
service and not implemented as mailets.
Are you thinking in niosmtp to implement some configurables hook so the
server could simply use it based on its configuration?
Do you see the DelayCalculationPolicy as part of niosmtp or part of server?
The only drawback I can see is that javamail is widely tested against
all sorts of mail servers since years. We will have to test niosmtp
against a representative number of servers also.
Thx.
On 11/09/11 10:44, Norman Maurer wrote:
> Hi there,
>
> I think its time to finally get rid of javamail for sending emails via
> SMTP / SMTPS and use something more performant / better suited for
> heavy usage. javamail just sucks in many ways for SMTP Delivery in a
> way that a real server need it. It just don't expose all the needed
> stuff that we need. Like proper de-decting of 5xx code in the greeting
> etc.
>
> So I started to work on a nio based SMTP / SMTPS client, which is
> build on top of netty. I think its now ready for a first review:
> https://github.com/normanmaurer/niosmtp
>
> It still lacks a few things that we need (also unit tests). Like SMTP
> AUTH and STARTTLS but I'm working on it (and I love contributions ;)).
> I really want to get it complete and use it as a replacement of
> javamail in our "RemoteDelivery" code. I also thing that we should
> move the RemoteDelivery code out of the Mailets and use a "real
> service" for it. This will make it easier to extend it and also expose
> stats etc. So I propose to start to work on a replacement as an
> experimental code base atm. We would still ship the old code till we
> dedicide that the new one is ready for primetime.
>
> For the new code I plan to allow to hook in custom
> "DelayCalculationPolicy" and also add support for notifiers which get
> called after each delivery. This will allow us todo smarter things in
> the future...
>
> WDYT ?
>
> Bye,
> Norman
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
> For additional commands, e-mail: server-dev-help@james.apache.org
>
--
Eric
http://about.echarles.net
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org