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