hi Arno
the smtp server is my provider smtp relay ( TELECOM ITALIA) .it's public
smtp relay for each adsl connection .
Im my Outlook client i use it from the same dvelop PC and all mail with all
attachment < 10 Mb will sent OK.
so , i have put your code in your demo app ..and the result it's the same.
only if i check progress the email will sent ( with large attach)..
it's like during the submission process, if I insert a small delay the
server can process the email ( with large attach)..
in fact if i put a small loop in SmtpClientMessageDataSent procedure or
sleep(150) in myapp and it send email correctly .with all attach.
but i can't do it in my real app , because there are a lot simultaneous
thread ..e it impact a lot in GUI and in run time process.
>
> 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
End of TWSocket Digest, Vol 413, Issue 11
*****************************************
--
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