[Mono-list] System.Web.Mail Enumerations

Jeffrey Stedfast fejj@ximian.com
22 Apr 2002 19:09:01 -0400


Lawrence,

Awesome that you're working on Mono.Mail, but I'm a bit concerned that
it's not going in the direction that I had envisioned (of course, I'm
not currently hacking on Mono.Mail so I can only offer guidance ;-).

I see that at least some of the API is modeled after Camel's API (or at
least the JavaMail API which Camel stole a lot of ideas from). This is
good.

But...

It would be really nice for the encoders/decoders, for example, to work
more like they do in our (Ximian's) Camel Mail API where they act as a
stream filter, thus allowing incremental encoding/decoding of streams.

Having stream filters makes a lot of things easier. For example, one
could attach a base64 encoder and a LF -> CRLF filter onto a stream.
Without doing this, you would have to base64 encode to a temp stream,
and then CRLF encode that temp stream into the final output stream.

(the camel encoder/decoder implementations are also extremely fast)

I think the SMTP code could also benefit from mimicking Camel's SMTP
implementation which covers most extensions that you would probably care
about including SASL, STARTTLS, ENHANCEDSTATUSCODES, etc. It also
contains a few work-around hacks for broken server implementations that
you may find useful ;-)

The following URL provides a cvsweb type of interface to the Camel cvs
repository.

http://cvs.gnome.org/bonsai/rview.cgi?cvsroot=/cvs/gnome&dir=evolution/camel

Another advantage of following Camel as closely as possible is that
Camel has proven itself in the Real World.

I hope you consider looking into Camel as a reference.

Jeff

On Mon, 2002-04-22 at 15:03, Lawrence Pit wrote:
> 
> Then I'll add these before I go do my taxes.. :)
> 
> It assumes the System.Web.SmtpMail.Send will use a loosly coupled component,
> which I've called Mono.Mail.Smtp.SmtpSender for the moment, but should in
> the future be replaceable by any component.
> 
> The attached also includes a Base64 encoder and decoder which can be
> efficiently used in streams. I'm finishing up the UU decoder. Then I'll do
> the quoted-printable stuff.
> 
> 
> 
> Greets,
> Lawrence
> 
> ----- Original Message -----
> From: "Jonathan Stowe" <gellyfish@gellyfish.com>
> To: <mono-list@ximian.com>
> Sent: Sunday, April 21, 2002 15:31
> Subject: [Mono-list] System.Web.Mail Enumerations
> 
> 
> > I could do these before I went to the pub and it seemed like a good place
> > to start :)
> >
> > /J\
> > --
> > Jonathan Stowe                      |
> > <http://www.gellyfish.com>          |      This space for rent
> >                                     |
> >
> 
> 
-- 
Jeffrey Stedfast
Evolution Hacker - Ximian, Inc.
fejj@ximian.com  - www.ximian.com