Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

POP3 + ActiveX [D7, Win2k]


integery ©   (2005-06-12 22:17:00) 

Хочу написать себе ActiveX для прийома пошти но немогу понять почему  FMsg.MessageParts.Count всегда равно 0 , хотя там есть attachment вот кусочек кода:

unit pop;

{$WARN SYMBOL_PLATFORM OFF}

interface

uses
 ComObj, ActiveX, Mycom_TLB,Dialogs,IdMessage, IdBaseComponent, IdComponent,
 IdTCPConnection, IdTCPClient, IdMessageClient, IdPOP3;

type
 TMPOP = class(TAutoObject, IMPOP)
 FMsg: TIdMessage;
 FPOP:TIdPOP3;
   protected
   function Get_ChekMail(MHost, MPort, MUser, MPass: OleVariant): OleVariant;
     safecall;
   function Get_GetMailBoxSize: OleVariant; safecall;
   function Get_MsgAttachCount: OleVariant; safecall;
   function Get_MsgDate: OleVariant; safecall;
   function Get_MsgFrom: OleVariant; safecall;
   function Get_MsgOrganization: OleVariant; safecall;
   function Get_MsgPrioriti: OleVariant; safecall;
   function Get_MsgSubj: OleVariant; safecall;
   function Get_GetMsgNum(Num: OleVariant): OleVariant; safecall;

   end;

implementation

uses ComServ, Classes;

{ TMPop }

function TMPOP.Get_ChekMail(MHost, MPort, MUser,
 MPass: OleVariant): OleVariant;
begin
 FPop:=TIdPOP3.Create(nil);
 FMsg:=TIdMessage.Create(nil);
    try
   FMsg.ContentType:='text/plain';
   FPOP.RecvBufferSize:=1024;
   with FPOP do
       begin
        if Connected then Disconnect;
        Host:=MHost;
        Port:=MPort;
        Username:=MUser; //windows.Beep(1700,200);
        Password:=MPass;
        Connect(20000);
       if Connected then Result:=CheckMessages else Result:= -1;
       end;
  except
   Result:=-2;
   end;
end;

function TMPOP.Get_GetMsgNum(Num: OleVariant): OleVariant;
begin
try
FMsg.Clear;
FPOP.RetrieveHeader(Num,FMsg);
except
Result:=-1;
end;
end;

function TMPOP.Get_MsgAttachCount: OleVariant;
begin
try
Result:=FMsg.MessageParts.Count;
except
Result:=-1;
end;
end;
немогу понять ясли в через консольноє приложениє то работаєт а через ActiveX не хочет , в чом граблии???


integery   (2005-06-13 09:54:00) [1]

ой блин всьо работаєт верно говорят утра вечера модринее
в место  FPOP.Retrieve(Num,FMsg) у меня FPOP.RetrieveHeader(Num,FMsg)


integery   (2005-06-13 09:50:00) [2]

народ подскажите в чом пращот ????


Наверх

Титульная страница Поиск, карта сайта Написать письмо