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 application.
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 good. * 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 course. What say you all? Cheers ADK -------------------------------------------- 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 copy, distribute or take any action in reliance on it and you should delete it from your system and notify the sender immediately. Thank you. Unless otherwise stated, any views or opinions expressed are solely those of the author and do 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:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
