> > > The idea behind the repositories (as I understand it), is that the
> > > SMTPServer does talk directly to the repository, and 
> another thread
> > > watches that repository and handles relay and final 
> delivery.  I don't
> > > know if abstracting a "Spooler" block really helps.  What 
> does that
> > > accomplish that just accessing the repository directly
> > > doesn't give you?
> > >
> > In your next message, Serge, you write about specialized mail
> > repositories, and this is exactly what I am talking about 
> here. Still,
> > there is a point of Store above Repository being useless. 
> What's your
> > opinion on that? Also you did not comment on the current block
> > nesting/dependency.
> 
> Well, I'm not really sure about the difference between a Store and a
> Repository.  I'll have to look over the code again to see the
> difference.  Also, I didn't comment on the block nesting/dependency as
> I've touched none of the Avalon code and don't really know the design
> objectives, plans, etc...
> 
Is I understand from the mailing list archives, the people working on
the framework are the same people that work on James, so if you don't care,
then nobody does :-(

> > For me, SMTP commands are something very standard and 
> therefore should
> > not be very customizable by the user(sysadmin). You, as I 
> understand,
> > see in them a kind of "Servlets" - flexible and user-created by
> > definition.
> 
> Well, the SMTP commands themselves are well defined, but how they are
> implemented is where we want the flexibility.
Wrong, their implementation is well-defined also. There are so many RFCs
that do define them in details ...

> For instance, we were
> thinking that RCPT TO or VRFY could check against 1) unix users, 2)
> relational database set of email addresses, 3) an exchange server, 4)
> notes server, 5) file based repository... however you intend 
> to restrict
> mail delivery.  So the commands stay relatively flexible for various
> implementations, and the approach we took allows you to more 
> easily add
> support for commands like SEND and Extended SMTP commands (or so that
> was the goal).
> 
But you would never configure RCPT to look in 1) and in the same time
configure VRFY to look in 3), right? IMHO more command-independent
approach to configuration would work better

> > Even if I do all that, ignorant user can just add my SEND 
> command to the
> > configuration without changing the implementation classes 
> settings and
> > by this breaking the SMTP server. Isn't it ugly? My point 
> is that the
> > "dissection" of the SMTP functionality should not be by 
> command (horizontal)
> > but by extention (vertical). The latter is harder to 
> implement correctly
> > though, and I haven't figured out how to do it exactly yet, 
> but I think
> > that "non-dissected" implementation would be sufficient for now.
> 
> I think your vertical design approach might be easier if we 
> standardized
> how SMTP commands work and then clearly define an approach for adding
> implementation layers on top of this.  However, you'll lose 
> the ability
> to easily add delivery status notification, or whatever other commands
> you want to use to extend SMTP.
Not if we do it right. (Still, I have not figured out that one yet ...)

> What if you wanted to add your own
> customized SMTP commands between the James server installed as the
> gateway, and then multiple James mailbox servers?  Granted 
> SMTP has been
> around for forever, but I think we wanted to keep it flexible so that
> you COULD take SMTP in new directions if you wanted it.  
> Otherwise with
> the vertical design, the whole architecture gets cemented and 
> it becomes
> extremely difficult to implement new approaches.
> 
Not if we do it right :-)

> > Unfortunately, the spec says that delivery should be 
> immediate and the
> > response code on RCPT command depends on the response code 
> received from
> > the recipient's SMTP server. Well, it does not explicitly 
> say that, but
> > it is clearly implied by:
> > "The SEND command requires that the mail data be delivered to
> > the user's terminal.  If the user is not active (or not
> > accepting terminal messages) on the host a 450 reply may
> > returned to a RCPT command.  The mail transaction is
> > successful if the message is delivered [to] the terminal."
> 
> Ok, got it.  That seems like a bit of a kludge, but understandably
> necessary.  So this basically means you should keep an open connection
> for a chat conversation between two users.  Between the 
> instant delivery
> of SEND and then the SMTP command to reverse who the client and server
> are (I forget off hand what this is), you allow a 2-way communication
> over this one TCP/IP interface.
It's called "TURN", but there is no need in it - its initial purpose
(connection
reuse) became meaningless with time as TCP connections became cheaper, and
some
people even say it has security implications.

> Very interesting... hmmm... this does
> all seem radically different than email... but it would be a nice
> integration for the user if it was the same client (I think 
> this is what
> Mozilla is going to try to do... integrate email and IM).
They were, but it died out somehow. Anyway, it was very different from what
I'm
talking about - they still were about to use different protocols for IM and
email.

> Anyway... sounds like you have your work cut out for you.  
> What are you
> planning to use for the client?  Are you creating your own custom one,
> or building code to integrate with the other mainstream instant
> messaging packages?
If I find anything that supports SEND when sending and notifies about IMAP
EXISTS,
I will probably use it. And, it's for some small (in distibution size)
client app,
so it should be in C++ or the like.


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

Reply via email to