Obviously, I guess, synchronous processing will be achieved through a series of method calls. The project on which I am working (inspired by James but not part of James) responds synchronously to SMTP clients based upon some method calls from SMTPHandler doRCPT() and doDATA().

In the first draft of my server, most of the processing (including forwarding or sending error email messages) is done after doDATA() has received the end of mail data indicator but before doDATA() has responded "250 Message received" -- so that a more revealing response might be "Message processed". But that functionality needs to get fancier because the indicated processing can not always be achieved in reasonable real time.

I will not have a sendMail(Mail) method in the mama class of the server because the only reason I have seen for having a such a method (so named and so situated) is in the historical precedent set by Sendmail.

Rich Hammer
Hillsborough, N.C.


Gu�laugur Stef�n Egilsson wrote:
I've been looking at James in order to use its SMTP service capability.
The problem is that I need synchronous processing, e.g. I need to be
able to process an email while the SMTP client is still connected, and
give an SMTP error response if I could not process the mail. In the
current implementation of James this is not provided for, since all
email messages go through the spool first, and are processed
asynchronously in a separate thread.

My question to the developers is what is the most sensible way of doing
this? It seems to me that the simplest way of achieving synchronous
processing is to modify James.sendMail(Mail mail) to bypass the spool
and call JamesSpoolManager.process(MailImpl mail) directly in the case
you want synchronous processing.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to