Re: IdSMTPServer and Custom Client communicating wrong

Giganews Newsgroups
Subject: Re: IdSMTPServer and Custom Client communicating wrong
Posted by:  Remy Lebeau (Indy Team) (no.spam@no.spam.com)
Date: Fri, 28 Jul 2006

"Han Bongers" <hanbongeā€¦@home.nl> wrote in message
news:4037D24DCE01E340hanbongeā€¦@home.nl...

> Indy 10.0.52

That is an old build.  You should consider upgrading to the current 10.1.5
snapshot.

> The problem is that our client has a custom made application which
> emails we need to delay, and that program doesn't send email trough
> our service. See the following logfile.

According to that log, the connection is being disconnected before the
message data is sent to the server.  There is no way to see whether the
server or the client closed the connection, though.  My guess would be the
client, since the server's replies were already sent prior to the
disconnect.

> 250 PIPELINING

I would suggest that you upgrade to the 10.1.5 snapshot and then set the
server's AllowPipelining property to False.  Pipelining has a lot of
problems in Indy, for various reasons that we have been unable to identify
the cause of yet.

> The application sends "RSET", "MAIL FROM", "RCPT TO" and
> "DATA" after each other, but doesn't seem to wait for a respond.
> It then receives al the responses after each other

That is the client using pipelining.

> and disconnects.

It should not be doing that.  Sounds like a bug in the client.

> When connecting with the other tested mail programs (Outlook, Outlook
> Express, and IIS) the InterceptLog shows they wait for a response after
> every one of these commands.

They are not using pipelining.

> The custom made application is also using Indy

TIdSMTP does try to use pipelining by default if it is enabled on the
server.  You can set either the TIdSMTP.Pipeline or
TIdSMTPServer.AllowPipelining properties to False to disable that.
Pipelining is much more problematic in TIdSMTP than it is in TIdSMTPServer.
Which is why I suggest that you disable the use of pipelining.

> No exceptions are raised at server side.

There has to be, since the client is disconnecting prematurely.  Of course,
the server will swallow the exception, but you should still be able to see
them in the debugger.

Gambit

Replies

In response to

IdSMTPServer and Custom Client communicating wrong posted by Han Bongers on Fri, 28 Jul 2006