Есть у меня почтовый клиент, который я делал, когда еще стоял INDY9 решил перейти на инди10. Проблема в следующем.
размер письма не соответствует тому, что указан на сервере.
алгоритм примерно следующий
1. коннект
2. залогиниваюсь
3. получаю лист
4. из листа извлекаю размер нужного мне письма
5. шлю RETR, проверяю ответ на +OK
6. загружаю
процедура загрузки: buf:=readBuf(false,true);
Function TTCPThread.ReadBuf(const withoutDotAndEmpty:boolean=true; const ShowProgress:boolean=false):string;
var
s:string;
begin
Result:='';
repeat
s:=tcp.Socket.ReadLn(enDefault);
if ShowProgress then
begin
ProgrPos:=ProgrPos+Length(s)+2;
Synchronize(DoProgressEvent);
end;
if withoutDotAndEmpty then
begin
if (s<>'.') and (s<>'') then Result:=Result+s+LF;
end else
begin
Result:=Result+s+LF;
end;
until s='.';
end;
дык вот пока был indy9 length(buf) равнялся тому размеру который указал в листе, с переходом на новый инди размер каждый раз разный.
помогите найти зарытую собаку )
спасибо.