![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Не приходят письма [D7, WinXP]
FatBase © (2004-04-29 08:00:00)Почему на ящик не приходят сообщения, ведь вроде бы всё правильно, соединяясь напрямую с smtp сервером через телнет вроде как всё получается, а так нет.
Вот мой код:
function bufsend(txt:string):boolean;
var buf:string;
send1,TOut:integer;
begin
result:=false;
buf:=txt;
TOut:=0;
while true do
begin
send1:=send(socks,Buf,length(buf),0);
showmessage('>'+copy(buf,1,send1)+' Sended '+inttostr(send1)+' from '+inttostr(length(buf)));
if (send1>=length(buf))or(TOut>666) then
break;
buf:=copy(buf,send1,length(buf));
inc(TOut);
sleep(100);
end;
if send1>=length(buf) then result:=true;
end;
procedure Run(STo,SFrom,text:string);
var buf:string;
buf1:string;
d:boolean;
cnt,err,send1,TOut:integer;
begin
buf:='1'+#13#10;
err:=send(socks,Buf,length(buf),0);
if err=SOCKET_ERROR then
exit;
bufsend('HELO mailserver'+#10);
bufsend('MAIL FROM:'+SFrom+#10);
bufsend('RCPT TO:'+STo+#10);
bufsend('DATA'+#10);
bufsend('hello'+#10);
bufsend('.'+#10);
bufsend('QUIT'+#10);
end;
Заранее спасибо.
FatBase (2004-05-01 04:11:00) [1]Почемуто команда send всегда принимает результат равный размеру моего буфера и хотябы раз меньше, программа ничего отослать не успела, а результат уже есть !?. У меня программа должна сгенерировать письмо и отослать, но не успеваю я её запустить как она закрывается, мол выполнив все операции, в пошаговом режиме всё происходит замечательно, даже send становится блокирующей функцией?! Как бороться, подскажите пожалуйста.
Verg (2004-04-29 09:08:00) [2]
function bufsend(txt:string):boolean;
var send1,TOut:integer;
begin
result:=false;
TOut:=1;
while TOut <= length(Txt) do
begin
send1:=send(socks, Txt[TOut], length(Txt)- TOut + 1, 0);
if send1 > 0 then
Inc(Tout, send1)
else
break;
end;
result := TOut > length(Txt);
end;
Verg (2004-04-29 09:02:00) [3]buf[1]
Reindeer Moss Eater (2004-04-29 08:37:00) [4]Сервер кроме того, что принимает всю эту ботву, он еще и отвечает на нее кодами возврата.
Это что бы у клиента не возникало ложного ощущуения что ведь вроде бы всё правильно