Helo Francois, Helo Wilfred, I was try to use Quit instead Abort but "Smtp component not ready" error is still happens time to time.
- I use OnRequestDone to start new session - I don't use Application->ProcessMessages - I only call Smtp->Abort in case of TimeOut. - I use SmtpCli->Quit to terminate connection I notice it almost always happens after bad SmtpCli->Connect attempt: I receive SmtpRequestDone with error 10044 (Interrupted System Call), then i PostMessage to initiate new Session, after receiving message by my messages Handler i call SmtpCli->Connect for next session and receive "Smtp component not ready". Please note: it's NOT happens after EACH 10004 error ! It's may be thousands connect attempts before execption throwed. Please ! Help me ! HOW I CAN BE 100% SURE that component is ready for next session ? It's looks like very serious bug inside WSocket and/or SmtpCli. You should agree: component MUST provide relaible event for starting next connects ! Absolutely relabile event ! At this time it's not available: - OnSessionClose may trigger more than one time - OnStateChange is for logging only - OnRequestDone may show "Component not ready error". --- With best regards, Max Terentiev. Business Software Products. AMS Development Team. [EMAIL PROTECTED] ----- Original Message ----- From: "Francois PIETTE" <[EMAIL PROTECTED]> To: "ICS support mailing" <twsocket@elists.org> Sent: Sunday, July 30, 2006 8:47 PM Subject: Re: [twsocket] Best event to start new Smtp session >> It's NOT possible to use OnRequestDone in case of Smtp->Abort() because >> it's NOT triggered for Abort() :-) > > If (to be verifyed) it is not triggered for Abort(), you can your > OnRequestDone handler directly or thru a custom message. > >> My program MUST call Abort() because it's email checker. It's interrupt >> connection after Success of RCPT command. > > Why Abort ? Just call Quit() which is the proper way of terminating work. > If Quit() is not what you need, you may call CtrlSocket.Shutdown(1); to > close the underlaying socket gracefully. > Calling Abort is for emergency case, it break the connection without the > remote party agreeing (it receive EConnReset error). > > -- > Contribute to the SSL Effort. Visit http://www.overbyte.be/eng/ssl.html > -- > [EMAIL PROTECTED] > http://www.overbyte.be > > > > ----- Original Message ----- > From: "Max Terentiev" <[EMAIL PROTECTED]> > To: "ICS support mailing" <twsocket@elists.org> > Sent: Sunday, July 30, 2006 6:26 PM > Subject: Re: [twsocket] Best event to start new Smtp session > > >> Helo Francois, >> >>>> Because it's looks like a serious bug. >>> >>> Then you have a serious opportunity to dig into the component code :-) >>> Seriously, don't use OnSessionClosed to start a new SMTP session >>> (subject >>> of >>> your message). Use OnrequestDone to do almost everything ! >> >> It's NOT possible to use OnRequestDone in case of Smtp->Abort() because >> it's NOT triggered for Abort() :-) >> >> Only OnSessionClosed triggered for Abort() but it's buggy because may >> trigger more than one time ! >> >> My program MUST call Abort() because it's email checker. It's interrupt >> connection after Success of RCPT command. >> >> I'll try to dig code of cource... But it's may to dificult to find random >> bug >> in these large library :-) >> >>> -- >>> Contribute to the SSL Effort. Visit http://www.overbyte.be/eng/ssl.html >>> -- >>> [EMAIL PROTECTED] >>> http://www.overbyte.be >>> >>> >>> >>> ----- Original Message ----- >>> From: "Max Terentiev" <[EMAIL PROTECTED]> >>> To: "ICS support mailing" <twsocket@elists.org> >>> Sent: Sunday, July 30, 2006 5:17 PM >>> Subject: Re: [twsocket] Best event to start new Smtp session >>> >>> >>>> Hello Francois, >>>> >>>> I don't use Application->ProcessMessages in entire application. >>>> >>>> If event OnSessionClose may trigger (or may not trigger) >>>> twice maybe these checks should be implemented inside SmtpCli component >>>> ? >>>> Because it's looks like a serious bug. >>>> >>>> --- >>>> With best regards, Max Terentiev. >>>> Business Software Products. >>>> AMS Development Team. >>>> [EMAIL PROTECTED] >>>> >>>> >>>> ----- Original Message ----- >>>> From: "Francois PIETTE" <[EMAIL PROTECTED]> >>>> To: "ICS support mailing" <twsocket@elists.org> >>>> Sent: Sunday, July 30, 2006 6:24 PM >>>> Subject: Re: [twsocket] Best event to start new Smtp session >>>> >>>> >>>>>> Please tell me: HOW i can be 100% sure that Connection is closed, >>>>>> Component >>>>>> is ready and i can start new Session ? How to avoid wrong >>>>>> OnSessionClose >>>>>> ? >>>>> >>>>> You either have a look at the component source code and try to >>>>> understand >>>>> why there are two OnSessionClosed events, or you use a flag to >>>>> remember >>>>> you >>>>> already received OnSessionClosed and have to ignore the second one. >>>>> >>>>> Note that strange event ordering are frequently resulting from calling >>>>> the >>>>> message pump directly or indirectly from one of the events. And >>>>> indirect >>>>> message pump call occur in each modal window (frequently used to >>>>> display >>>>> values when debugging: don't do that). >>>>> >>>>> -- >>>>> Contribute to the SSL Effort. Visit >>>>> http://www.overbyte.be/eng/ssl.html >>>>> -- >>>>> [EMAIL PROTECTED] >>>>> http://www.overbyte.be >>>>> >>>>> >>>>> >>>>> ----- Original Message ----- >>>>> From: "Max Terentiev" <[EMAIL PROTECTED]> >>>>> To: "ICS support mailing" <twsocket@elists.org> >>>>> Sent: Sunday, July 30, 2006 3:27 PM >>>>> Subject: Re: [twsocket] Best event to start new Smtp session >>>>> >>>>> >>>>>> Hello Wilfred, >>>>>> >>>>>> I try to post message inside OnSessionClosed... >>>>>> But I notice another problem: >>>>>> >>>>>> I don't know why but OnSessionClosed called twice in some cases ! >>>>>> >>>>>> This is a log of my Smtp session where you can see SmtpCli bug: >>>>>> >>>>>> Here is first session, it's sucessfully completed: >>>>>> ----------------- >>>>>> Checking address: [EMAIL PROTECTED] >>>>>> MX Resolved from cache >>>>>> Connectng to 192.168.0.2 >>>>>> 220 Welcome to the mail server for mysite.com Sun, 30 Jul 2006 >>>>>> 16:26:14 >>>>>> 0400 >>>>>> 250 mail.mail.ru Hello 192.168.0.1 >>>>>> 250 Current mail transaction reset >>>>>> 250 , sender ok >>>>>> 250 <[EMAIL PROTECTED]> >>>>>> E-Mail Check Result OK >>>>>> Call Smtp->Abort(); >>>>>>>>>Inside OnSessionClosed, Call PostMessage<<< >>>>>> Posted Message Received by my WndProc handler, start checking next >>>>>> address >>>>>> >>>>>> ----------------- >>>>>> Checking address: [EMAIL PROTECTED] >>>>>> Host Resolved from cache >>>>>> Connectng to 192.168.0.2 >>>>>>>>>Inside OnSessionClosed, Call PostMessage<<<<< >>>>>> ^^^^BUG - WHY IT'S TRIGGERED HERE ???^^^ >>>>>> 220 Welcome to the mail server for mysite.com Sun, 30 Jul 2006 >>>>>> 16:26:14 >>>>>> 0400 >>>>>> Posted Message Received by my WndProc handler, start checking next >>>>>> address >>>>>> ^^^^^^ It's wrong because wrong OnSessionClosed received ! >>>>>> ----------------- >>>>>> >>>>>> As you can see OnSessionClosed triggered twice ! And from this >>>>>> point program works incorrectly ! >>>>>> >>>>>> Note: it's happens rarely. Program may check up to 10 000 emails >>>>>> before >>>>>> it's happens. It's happens on random place. >>>>>> >>>>>> Please tell me: HOW i can be 100% sure that Connection is closed, >>>>>> Component >>>>>> is ready and i can start new Session ? How to avoid wrong >>>>>> OnSessionClose >>>>>> ? >>>>>> >>>>>> --- >>>>>> With best regards, Max Terentiev. >>>>>> Business Software Products. >>>>>> AMS Development Team. >>>>>> [EMAIL PROTECTED] >>>>>> >>>>>> >>>>>> ----- Original Message ----- >>>>>> From: "Wilfried Mestdagh" <[EMAIL PROTECTED]> >>>>>> To: "ICS support mailing" <twsocket@elists.org> >>>>>> Sent: Sunday, July 30, 2006 12:19 PM >>>>>> Subject: Re: [twsocket] Best event to start new Smtp session >>>>>> >>>>>> >>>>>>> Hello Max, >>>>>>> >>>>>>> it has been a while I worked with TSmtpCli. Try to post a message >>>>>>> from >>>>>>> OnSessionClosed to custom message handler. The message hander take >>>>>>> car >>>>>>> of next connection. >>>>>>> >>>>>>> --- >>>>>>> Rgds, Wilfried [TeamICS] >>>>>>> http://www.overbyte.be/eng/overbyte/teamics.html >>>>>>> http://www.mestdagh.biz >>>>>>> >>>>>>> Saturday, July 29, 2006, 15:06, Max Terentiev wrote: >>>>>>> >>>>>>>> Hello Wilfred, >>>>>>> >>>>>>>> But how I can detect that SmtpCli->Abort() is finished, component >>>>>>>> is >>>>>>>> ready and I can call SmtpCli->Connect again for next message ? >>>>>>> >>>>>>> If I call SmtpCli->>Connect() IMMEDIATELY after SmtpCli->Abort() >>>>>>>> I should receive "Component Not Ready" error, right ? >>>>>>> >>>>>>> If SmtpCli->>Abort() is called only OnSessionClose event is >>>>>>> triggered >>>>>>>> (OnRequestDone NOT triggered in this case). >>>>>>> >>>>>>>> So, to start new sessuion I must use OnSessionClose in case of Smtp >>>>>>>> protocol >>>>>>>> error/Abort and OnRequestDone in case of successfull sending (no >>>>>>>> Abort) >>>>>>>> ? >>>>>>> >>>>>>>> --- >>>>>>>> With best regards, Max Terentiev. >>>>>>>> Business Software Products. >>>>>>>> AMS Development Team. >>>>>>>> [EMAIL PROTECTED] >>>>>>> >>>>>>> >>>>>>>> ----- Original Message ----- >>>>>>>> From: "Wilfried Mestdagh" <[EMAIL PROTECTED]> >>>>>>>> To: "ICS support mailing" <twsocket@elists.org> >>>>>>>> Sent: Saturday, July 29, 2006 2:04 PM >>>>>>>> Subject: Re: [twsocket] Best event to start new Smtp session >>>>>>> >>>>>>> >>>>>>>>> Hello Max, >>>>>>>>> >>>>>>>>> Use OnRequestDone to trigger next sending, not OnStateChange or >>>>>>>>> OnSessionClosed. Both latter are more for log or display updates. >>>>>>>>> >>>>>>>>> --- >>>>>>>>> Rgds, Wilfried [TeamICS] >>>>>>>>> http://www.overbyte.be/eng/overbyte/teamics.html >>>>>>>>> http://www.mestdagh.biz >>>>>>>>> >>>>>>>>> Saturday, July 29, 2006, 11:48, Max Terentiev wrote: >>>>>>>>> >>>>>>>>>> Helo, >>>>>>>>> >>>>>>>>>> What is a best event for starting new Smtp session (e.g. >>>>>>>>>> start sending next message after previous is sent or aborted)? >>>>>>>>> >>>>>>>>>> I was try to Use OnSessionClosed or OnStateChange events >>>>>>>>>> (in OnStateChange i wait for SmtpCli->State==smtpReady and >>>>>>>>> Smtp->>CtrlSocket->State=wsClosed). >>>>>>>>> >>>>>>>>>> But anyway i receive folowing errors time to time: >>>>>>>>> >>>>>>>>>> 1. Smtp component not ready >>>>>>>>>> 2. Error in function WSACancelAsyncRequest - Invalid Argument >>>>>>>>>> 3. Smtp component already connected >>>>>>>>>> 4. Can't change socks port if not closed. >>>>>>>>> >>>>>>>>>> This errors happens time to time (program can work minutes or >>>>>>>>>> hours >>>>>>>>>> before >>>>>>>>>> it). >>>>>>>>> >>>>>>>>>> I not understand why it's happens ? >>>>>>>>> >>>>>>>>>> After sending message (or getting smtp protocol error during >>>>>>>>>> sending >>>>>>>>>> message) I ALWAYS Call SmtpCli->Abort() and wait in OnStateChange >>>>>>>>>> until connection closed and component is ready. After it I >>>>>>>>>> prepare >>>>>>>>>> next >>>>>>>>>> message and call SmtpCli->Connect(), etc. >>>>>>>>> >>>>>>>>>> Why I receive errors 1-4 ?? Maybe I must do something special ? >>>>>>>>>> How >>>>>>>>>> i >>>>>>>>>> can ensure what connection is 100% closed and component 100% >>>>>>>>>> ready >>>>>>>>>> for >>>>>>>>>> next >>>>>>>>>> session ? >>>>>>>>> >>>>>>>>>> I NOT use Application->ProcessMessages inside SmtpCli events. >>>>>>>>> >>>>>>>>>> Please help... And excuse me for bad english. >>>>>>>>> >>>>>>>>>> --- >>>>>>>>>> With best regards, Max Terentiev. >>>>>>>>>> Business Software Products. >>>>>>>>>> AMS Development Team. >>>>>>>>>> [EMAIL PROTECTED] >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> 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 >>>>>>> >>>>>> >>>>>> -- >>>>>> 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 >>>>> >>>> >>>> -- >>>> 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 >>> >> >> -- >> 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 > -- 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