In my opinion, the servers are not compliant with the standard. Indtead of tweaking the component, either simply colse the connection yourself or implement a timeout and close it later if the server don't do it quickly enough for you.
Contribute to the SSL Effort. Visit http://www.overbyte.be/eng/ssl.html -- [EMAIL PROTECTED] Author of ICS (Internet Component Suite, freeware) Author of MidWare (Multi-tier framework, freeware) http://www.overbyte.be ----- Original Message ----- From: "David A. G." <[EMAIL PROTECTED]> To: "TWsocket" <twsocket@elists.org> Sent: Friday, November 17, 2006 12:05 AM Subject: [twsocket] SmtpClient problem on disconnect > Hello all: > > I'm having problems SmtpCli where OnRequestDone function is not fired after > sending QUIT command because the SMTP server is not closing the > connection!!. It occurs only when using EHLO command and AUTH LOGIN > authentication. I have tryed with 2 servers with same results (big linux > servers). > > To solve that, I have changed SmtpProt.pas: > > FROM: > > procedure TCustomSmtpClient.NextExecAsync; > ... > ... > if Assigned(FDoneAsync) then > FDoneAsync > else if (FRequestType <> smtpQuit) or (FConnected = FALSE) then > TriggerRequestDone(FRequestResult) > else begin > { We have to wait until remote host close connection before } > { calling TriggerRequestDone. See WSocketSessionClosed. } > end; > end; > > > TO: > > procedure TCustomSmtpClient.NextExecAsync; > ... > ... > if Assigned(FDoneAsync) then > FDoneAsync > else > TriggerRequestDone(FRequestResult) > end; > end; > ...then in the OnRequestDone I can close connection (if necessary) by > calling CloseDelayed. > > > any idea?? > > thanks in advance, > David > -- > To unsubscribe or change your settings for TWSocket mailing list > please goto http://www.elists.org/mailman/listinfo/twsocket > Visit our website at http://www.overbyte.be -- To unsubscribe or change your settings for TWSocket mailing list please goto http://www.elists.org/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be