Hello Andrea,
> thank for your answer
> ( but i have read your post in Internet and not receive any email)
> how i can replay in my open thread ??
I do not understand, sorry.
>
> but i have put a sleep(150) on SmtpClientDisplay procedure and all
> work well ..so this is fix..
I do not think so, there must be some reason for error #10004.
> it's how the send streaming it's so fast like the server want..
That's impossible you cannot send data too fast.
>
> without "fix" i receive this error ( but i can't use it because
> freeze my APP)
What's freezing the GUI is displaying the log messages in the Memo
that causes 100% CPU and slows down transfers dramatically.
>
> All message sent OK at the last after send file i have this error
>
>>
>> --= Multipart Boundary 0305110951--
>> .
> RequestDone Rq=5 Error=10004
> RequestDone Rq=6 Error=0
Then the server probably drops the connection without a hint why.
If it were a good mail server the log would show something like:
{code}
>
> --= Multipart Boundary 0305111618--
.
> .
552 Message size exceeds fixed maximium message size
< 552 Message size exceeds fixed maximium message size
RequestDone Rq=5 Error: 552 Message size exceeds fixed maximium message size
Error, stoped All-In-One demo
RequestDone Rq=6 No Error
{code}
> i have see the calcmsg like you say but there isn't any example ...
> and i don't know how use it in my procedure
There are multiple ways, this is just a simple example:
{code}
case RqType of
smtpConnect:
begin
SmtpClient.MessageSize := 0;
SmtpClient.Ehlo;
end;
smtpEhlo:
begin
if SmtpClient.Username <> '' then
begin
SmtpClient.AuthType := smtpAuthAutoSelect;
SmtpClient.Auth;
end
else if SmtpClient.SizeSupported then
SmtpClient.CalcMsgSize
else
SmtpClient.MailFrom;
end;
smtpCalcMsgSize:
SmtpClient.MailFromSIZE;
smtpAuth:
begin
if SmtpClient.SizeSupported then
SmtpClient.CalcMsgSize
else
SmtpClient.MailFrom;
end;
smtpMailFrom:
SmtpClient.RcptTo;
smtpRcptTo:
SmtpClient.Data;
smtpData:
SmtpClient.Quit;
smtpQuit:
Display('All-In-One done !');
end;
{code}
Note that like most samples it lacks proper error checks.
> i have see in your demo and you use it in PrepareProgressBar.
>
> so i have insert a procedure like PrepaeProgressBar and now it
> work...with all file...(i hope ..next day i test it with more file on
> large develop case)
That doesn't make sense IMO.
> conclusion
> i have reproduce it in your demo app...if i send a very small file
> all work without check progress bar
> with large file i need to check progress bar ...(same in my app)..
> i have see that this problem can repruduce with very larg body
> text..(html not testing but i think is the same)
It is very likely that the server accepts only a certain amount of
data from the same IP within some time frame. Try my example above
with the demo and see what happens.
>
> i think that calcmsg(sync) could be a default setting in your
> componet..when file attachment or body text is to large..
I don't think so, you are free to use it in designs like the
All-In-One demo.
--
Arno Garrels
--
To unsubscribe or change your settings for TWSocket mailing list
please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be