Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Сети > реализация Pop3/Smtp без VCL.


Автор: Cetus 10.5.2005, 16:02
Неделю ищу реализацию pop3/smtp под Kol.

На сайтах кол нашел пару библиотек KolIndy
но pop3 компоненты не компилируются без ошибок, либо код раздувается до ~300 кб.
пробовал стандартную библиотеку Indy подключать динамически но код раздувается до безобразия.

Кто знает где можно найти pop3/smtp компоненты под кол не глючные и не большие (откомпилированные)?

есть ли реализация Imap для Kol ? (если да то где искать?)

Автор: RA 10.5.2005, 16:41
http://tothpaul.free.fr/zip/CRTSOCK.ZIP (Не использует VCL)

Автор: Олег_Игоревич 10.5.2005, 21:22
Используй WINAPI !!! А для экономичного кода можно использовать фрагменты на assembler.

Автор: Cetus 18.5.2005, 09:27
RAdmin, как этим компонентом читать приаттаченые файлы?

Автор: RA 18.5.2005, 14:40
Код


{H+}


function include(filename:string):string;
 var
  f:file;
  s:string;
  u:string;
  i,x:integer;
  ss:integer;
  c1,c2:byte;

  function uuchr(b:byte):char;
   begin
    if b=0 then result:=#96 else result:=chr(b+32);
   end;

 begin
  assignfile(f,filename);
  reset(f,1);
  if ioresult<>0 then begin
   result:='$include "'+filename+'" read error';
   exit;
  end;
  result:=#13#10'begin 600 '+filename+#13#10;
  setlength(s,76);
  while not eof(f) do begin
   blockread(f,s[1],45,i);
   u:=uuchr(i); // UUCoded line lenght
   ss:=2;
   c2:=0;
   for x:=1 to i do begin
    c1:=ord(s[x]);
    u:=u+uuchr(c2 or (c1 shr ss));
    c2:=(c1 shl (6-ss)) and 63;
    ss:=(ss+2) and 7;
    if ss=0 then begin
     ss:=2;
     u:=u+uuchr(c2);
     c2:=0;
    end;
   end;
   if (ss>2) then begin
    u:=u+uuchr(c2)+#96;
    if ss=4 then u:=u+#96;
   end;
   result:=result+u+#13#10;
  end;
  result:=result+#96#13#10'end'#13#10;
 end;
 

 
 
 smtpSend(edFrom.Text,edTo.Text,edSubject.Text,edBody.Lines + include('c:\myfile.zip') )



Тоесть кодируешь свой фаил и добавляешь кодированный результат к тексту сообщения.

Не забудь про директиву {H+}

Автор: Cetus 19.5.2005, 07:15
RAdmin, спасибо!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)