james-server-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Aaron.Kn...@vodafone.co.nz
Subject JAMES SMTP API sub-project proposal
Date Thu, 21 Nov 2002 22:49:47 GMT
Hi all,

I have come across several projects with requirements to receive and
process inbound mail.  Currently, the options for implementing this (in
java) are a JAMES mailet, or some kind of POP3/IMAP client.  However, I
would like to have a third option of embedding a SMTP listener into my

I propose that the JAMES SMTP handling code be split out from the JAMES
server and packaged as a separate API, which JAMES itself uses and which
can used separately from the rest of JAMES.

Requirements for this API would include:

*    The API must have no reliance on the rest of JAMES.
*    The API must be entirely suitable for use by JAMES, without the need
for any 'special case' concessions being made by either side.
*    The API must not manage it's own threads.  (The embedding application
should be free to control its own thread creation/destruction.)
*    The API must not manage it's own sockets. (Again, opening of
ServerSockets should be left to the parent application.)
*    The API is responsible for conducting an SMTP converstion over a pair
of streams (one in, one out) and creating mail objects, which are passed to
a handler (implemented by the parent app).
*    My own requirement is for inbound communication only, by does not
preclude outbound communication if anyone else thinks that this would be
*    The API is responsible for compliance with the relevant RFC's with
respect to communications.  Where the RFC's specify mail server behaviour,
enough information should be passed to the parent app to allow it to
implement the required behaviour.

I am willing to do the work required to extract this API from the current
JAMES codebase, with a view to its being made a JAMES sub-project.  (This
would be on my own time, so results may not be instantaneous.)  Before
making any start on such an endeavour, I require two things from the JAMES
developer community:

1)   Acceptance that this is a desirable direction for JAMES to take.
2)   Some further discussion/ratification of the requirements and the form
that this API should take.  (e.g. public interface to the API.)

Any help would also be appreciated (of course).

If this kind of thing is aided by the promotion of JAMES to a top level
project, then that proposal get a +1 from me (else +0).  The separate test
project proposed by Harmeet also gets a +1 from me (subject to the
availability of developers willing to do the work).  These last two points
count regardless of whether this particular proposal is accepted, of

What say you all?




There is no magic.

Have you seen our website?.... http://www.vodafone.co.nz

CAUTION: This correspondence is confidential and intended for the named recipient(s) only.
If you are not the named recipient and receive this correspondence in error, you must not
distribute or take any action in reliance on it and you should delete it from your system
notify the sender immediately.  Thank you.

Unless otherwise stated, any views or opinions expressed are solely those of the author and
not represent those of Vodafone New Zealand Limited.

Vodafone New Zealand Limited
21 Pitt Street, Private Bag 92161, Auckland, 1020, New Zealand
Telephone + 64 9 357 5100
Facsimile + 64 9 377 0962

To unsubscribe, e-mail:   <mailto:james-dev-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <mailto:james-dev-help@jakarta.apache.org>

View raw message