procedure SendMail;
 type zawartosc=array[1..57] of char;
 var WSAData:TWSAData;
     sock,i:integer;
     sa:tsockaddrin;
     wiadomosc:string[100];
     zalacznik:file of char;
     linia:zawartosc;
     zrobiono,zrobione:longword;
 function odbierz(s:integer):pchar;
  var buf:array[0..99] of char;
  begin
   recv(s,buf,sizeof(buf),0);
   result:=buf;
  end;
 procedure wyslij(s:integer;co:string);
  var buf:array[0..99] of char;
      j:byte;
  begin
   fillchar(buf,100,0);
   for j:=1 to length(co) do
    begin
     buf[j-1]:=co[j];
    end;
   send(s,buf,sizeof(buf),0);
  end;
 begin
  WSAStartup(makeword(2,0),WSAData);
  sock:=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
  if sock=INVALID_SOCKET then
   begin
   end;
  if SOCKET_ERROR=WSAAsyncSelect(sock,xMainWnd,WM_USER+1,FD_CONNECT or FD_READ or FD_WRITE) then
   begin
   end;
  sa.sin_family:=AF_INET;
  sa.sin_port:=htons(25);
  sa.sin_addr.s_addr:=inet_addr(PChar('212.126.20.60'));
  bind(sock,sa,sizeof(sa));
  connect(sock,sa,sizeof(sa));
  wiadomosc:=odbierz(sock); // 250 ...
  wyslij(sock,'EHLO smtp.o2.pl');
  wiadomosc:=odbierz(sock); // 250 ...
  wyslij(sock,'MAIL From:<'+mailod+'>');
  wiadomosc:=odbierz(sock); // 250 ...
  wyslij(sock,'RCPT To:<'+mail+'>');
  wiadomosc:=odbierz(sock); // 250 ...
  wyslij(sock,'DATA');
  wiadomosc:=odbierz(sock); // 354 ...
  wyslij(sock,'From: <'+mailod+'>');
  wyslij(sock,'To: <'+mail+'>');
  wyslij(sock,'subject: temat');
  wyslij(sock,'MIME-Version: 1.0');
  wyslij(sock,'Content-Type: multipart/mixed; boundary="gc0p4Jq0M2Yt08jU534c0p"');
  wyslij(sock,'This is a multi-part message in MIME format...');
  wyslij(sock,'--gc0p4Jq0M2Yt08jU534c0p');
  wyslij(sock,'Content-Type: text/plain');
  wyslij(sock,'Content-Disposition: inline');
  wyslij(sock,'');
  wyslij(sock,'INFO');
  wyslij(sock,'--gc0p4Jq0M2Yt08jU534c0p');
      wyslij(sock,'Content-Type: application/octream; name="1.txt"');
      wyslij(sock,'Content-Transfer-Encoding: base64');
      wyslij(sock,'Content-Disposition: attachement; filename="1.txt"');
      wyslij(sock,'');
      AssignFile(zalacznik,'c:\1.txt');
      Reset(zalacznik);
      zrobiono:=filesize(zalacznik);
      repeat
        Blockread(zalacznik,linia,SizeOf(linia),zrobione);
        wyslij(sock,Base64Encode(linia));
        zrobiono:=zrobiono-zrobione;
      until zrobiono=0;
      CloseFile(zalacznik);
      wyslij(sock,'');
  wyslij(sock,''); // End of Header
  wyslij(sock,'.'); // end of mail
  wiadomosc:=odbierz(sock); // 250 ...
  wyslij(sock,'QUIT');
  wiadomosc:=odbierz(sock); // 250 ...
  closesocket(sock);
  WSACleanup;
 end;
  Mam oto taki powyzszy kod i niby wszystko jest OK, bledow nie wywala, kompiluje sie i laczy, ale po odebraniu pierwszej wiadomosci od serwera gdy cos wysle i probuje odebrac nastepna zamiast standardowej odpowiedzi otrzymuje jakby fragment tego co przed chwila wysylalem a na po kilku takich operacjach 'wiadomosc' jest pusta. Co jest zle i jak to przerobic zeby dzialalo?