Max Terentiev wrote:
> 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 personally haven't noticed this problem (but that must not mean
that it doesn't exist).

BTW: smtpQuit just sends command Quit to the server. OnSessionClosed will
be triggered later when the _server_ closes the connection. However Abort
plus posting a custom message should work.

Providing a simple test project that reproduces the error might help.
A tester should be able to get that running within 5 minutes max.
Just upload the test project to a website and post the link here.

---
Arno Garrels [TeamICS]
http://www.overbyte.be/eng/overbyte/teamics.html
   
 


> 
> - 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

Reply via email to