Glad you thought to post to us here.  We've got a pretty functional SMTP
relay server built, and someone actually started writing POP3 support
recently, although I don't know the status of that.  What's happened is
that initially I wrote a rather simple SMTP messaging server with
support for a new defined "Mail servlet" API, to let people easily add
whatever custom relaying code they wanted.  From there, the group
decided it would be better to 1) make this in tune with the upcoming (?)
framework architecture named Avalon, and 2) abstract as much as
possible.  Now, when I say abstract, I mean abstract to the point that
this is how SMTP is now implemented... an incoming connection gets
dynamically handled by a given "protocol handler," when if configured
normally, a connection to port 25 would get handled by the SMTP
handler.  THEN, the SMTP command handler loads half a dozen different
classes, which each handle a different SMTP command... HELO, MAIL FROM,
RCPT TO, DATA, VRFY, etc..., etc...  The point of this is to allow folks
like you to very easily add a couple of SMTP command classes, add it to
the conf file, and boom, you can do every you want without having to
write a mail server from scratch.

It's somewhat stalled right now as everyone seems to be busy with other
things, or on trips and the like.  In theory, everything works, but
isn't very tested, and there are probably some missing pieces in the
current version.  Avalon provides a framework for startup,
configuration, logging, and other things.  We then have an extensible
ObjectStore architecture, so you can have queues or mailboxes just store
in the configurable object store objects, would could then be on the
backend the file system, a database, whatever.  We also have all the
basics for SMTP, and like I mentioned someone (I think Matt Pettys) had
mentioned they wrote a basic set of POP3 commands, but I'm not sure how
he's handling mailboxes, etc...

The only area that's probably not complete is the object store.  Pier
originally gave some thought and put some code together for this, but
then I started realizing some extra requirements we had from the mail
delivery side, and I sort of just held the ball and didn't run with it
to complete object stores.  As I wrote the original code submitted to
the James project, my role has more or less dwindled to the SMTP
delivery part, and I need to upgrade to some newer DNS lookup code I
have and support deferred delivery better.

Where is the code?  Well, in many different places.  I'm not sure how
public it is, so maybe you can swap in your username/password or the
anonymous username/passwords in place of sergek, but here are the CVS
projects you'd need to checkout:

James (this is the core code for the mail server)
:pserver:[EMAIL PROTECTED]:/products/cvs/master/james

Framework (this is the Avalon framework that James uses... there might
be some of this code in the James package as well... in theory you need
both, but we might have duplicated some of the code as we've converted
James to the framework)
:pserver:[EMAIL PROTECTED]:/products/cvs/master/framework

Then you need several other packages... this is part of a README I've
been working on...

1. JavaMail library
Download JavaMail 1.1.2 from
http://java.sun.com/products/javamail
Extract the mail.jar file from the archive and put this in your
CLASSPATH when you compile and run James.

2. JavaBeans Activation Framework
Download JavaBeans Activation Framework (JAF) 1.0.1 from
http://java.sun.com/beans/glasgow/jaf.html
Extract the activation.jar file from the archive and put this in you
CLASSPATH when you compile and run James.

Download dnsJava package from
http://www.xbill.org/dnsjava/
This download only includes source and does not include a jar file.

And finally before I go... I hope to spend quite a bit of time working
on James over the holiday break as my offices have the whole week off
last week.  I'm hoping I can take the current(new) architecture to at
least a pretty solid and useable level.

Hope this all helps.  We'd love to have new contributors to the group,
and I personally would love IMAP4 support in James.  Feel free to ask me
any questions about the code offline.

Serge Knystautas
Loki Technologies
http://www.lokitech.com/

"[EMAIL PROTECTED]" wrote:
> 
> Hello, guys!
> 
> My name is Daniel and i am interested in helping this project. Actually, i am paid 
>to do it :-), i'll explain:
> My company (deltathree.com, Inc.) wants me to write a messaging server (SMTP + IMAP) 
>with certain features that could provide instant messaging functionality, by using 
>SMTP SEND and SOML optional commands and IMAP EXISTS untagged response. The initial 
>(well-forgotten) purpose of the SEND command was to deliver the message to user's 
>terminal. From the RFC:
> "The main purpose of SMTP is to deliver messages to user's
>       mailboxes.  A very similar service provided by some hosts is to
>       deliver messages to user's terminals (provided the user is active
>       on the host).  The delivery to the user's mailbox is called
>       "mailing", the delivery to the user's terminal is called
>       "sending".  "
> So, the initial meaning of it was providing some limited instant messaging 
>functionality and my purpose is to revive it.
> And on the receiving part, EXISTS in IMAP already a "response without a request" 
>which means "pushing" of the new message notification instead of "pulling" provided 
>that IMAP connection is constantly on (not like most of the current uses of IMAP).
> 
> <clarification>Yes, i am aware of the Jabber effort and no, i don't like their 
>XML-stream-based protocol: i don't want yet another ICQ, i want "instant 
>email".</clarification>
> 
> So ... So far i wrote a simple SMTP receiving (no relay) server implementation and 
>started to write an IMAP one and was going to connect these two, but then i found 
>this mailing list. I know, the project's page sais "don't ask!", but where is the 
>source if any?


------------------------------------------------------------
To subscribe:        [EMAIL PROTECTED]
To unsubscribe:      [EMAIL PROTECTED]
Archives and Other:  <http://java.apache.org/>
Problems?:           [EMAIL PROTECTED]

Reply via email to