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

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

как отделить аттачмент?


VajVajVaj ©   (2006-07-10 22:54:00) 

следующий код я использую для чтения почты:

procedure TForm1.Button1Click(Sender: TObject);
var
pop3mailcounttotalI : integer;
pop3mailboxsizetotalI : integer;
I : integer;
J : integer;
K : integer;
bodyS : TStringList;
s : string;
Msg: TIdMessage;
c:TCollection;
begin
IdPOP31.Host := 'pop.yandex.ru';
IdPOP31.Port := 110;
IdPOP31.Username := 'V-o-i-d-1';
IdPOP31.Password := '9632147';
bodyS := TStringList.Create;
IdPOP31.Connect;
pop3mailcounttotalI := IdPOP31.CheckMessages;
pop3mailboxsizetotalI := IdPOP31.RetrieveMailBoxSize div 1024;
ShowMessage( 'Mail total =' + ' ' + IntToStr( pop3mailcounttotalI ) );
ShowMessage( 'Mailbox size total =' + ' ' + IntToStr(
pop3mailboxsizetotalI ) + ' ' + 'Kilobytes' );
for I := 1 to pop3mailcounttotalI do begin
 ShowMessage( 'I =' + ' ' + IntToStr( I ) );
 Msg :=  TIdMessage.Create( Self );
 if IdPOP31.Retrieve( I, Msg ) then begin // add an IDMessage component from the Indy Misc tab, to initialize IdMessage1
    ShowMessage( Msg.MsgId );
   ShowMessage( Msg.Subject );

  for J := 0 to Pred( IdMessage1.MessageParts.Count ) do begin
   if ( IdMessage1.MessageParts.Items[ J ] is TIdAttachment) then
begin
    BodyS.Add( TIdAttachment(IdMessage1.MessageParts.Items[J ] ).Filename );
   end;
   if ( IdMessage1.MessageParts.Items[ J ] is TIdText ) then begin
    ShowMessage( 'I am here' );
    BodyS.AddStrings( TIdText( IdMessage1.MessageParts.Items[J ]).Body );
   end;
  end;
    ShowMessage( BodyS.Text );
   Msg.NoDecode := false;
   BodyS.Clear;
    ShowMessage( Msg.ContentType );
   for J := 0 to Pred( Msg.MessageParts.Count) do
   begin
     if ( Msg.MessageParts.Items[J] is TIdAttachment ) then
     begin
    end
     else
      begin
      for K := 0 to 1 do begin
       if Msg.MessageParts.Items[J] is TIdText then begin
        Memo1.Lines.AddStrings(TIdText( Msg.MessageParts.Items[J]).Body);
        BodyS.AddStrings( TIdText( Msg.MessageParts.Items[J ]).Body );
       end;
      end;
     end;
   end;
  ShowMessage( BodyS.Text );
 end
 else begin
  ShowMessage( 'Internet: E-mail: Header: Could not be retrieved' );
 end;
end;
IdPOP31.Disconnect;
end;


помогите мне пожалуйста пристроить сюда код для отделения аттачмента.


VajVajVaj   (2006-07-11 11:33:00) [1]

Спасибо, очень благодарен :thumbs:


Slym   (2006-07-11 05:51:00) [2]

BodyS.Add( TIdAttachment(IdMessage1.MessageParts.Items[J ] ).Filename );
TIdAttachment(IdMessage1.MessageParts.Items[J ] ).SaveToFile


Наверх

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