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

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

Получение почты в Delphi [D7, XP]


Страницы:   1 2 3 4

DimOk ©   (2007-08-27 12:23:00) 

Добрый день всем. Хочу поинтересоваться, как можно сохранить прикрепленные файлы к письму.
procedure TForm1.Button1Click(Sender: TObject);
var MyMessage:  TIdMessage;
   CountMessages: Integer;
   attach: TIDAttachment;
begin
MyMessage := TIdMessage.Create(nil);
IdPOP31.Connect();
CountMessages := IdPOP31.CheckMessages();
while CountMessages > 0 do begin
if IdPOP31.Retrieve(CountMessages,MyMessage) = True then begin
   RichEdit1.Lines.Assign(MyMessage.Body);
   attach := TIDAttachment.Create(MyMessage.MessageParts);
   //А дальше я не знаю что делать (касательно прикрепленных файлов)
  //attach.SaveToFile(const FileName: TFeliName): Boolean - как работает эта функция в хелпе нет ни каких данных и примеров по indy компонентам.
end;
CountMessages := CountMessages - 1;
end;
ShowMessage(IntToStr(IdPOP31.CheckMessages()));
MyMessage.Free;
IdPOP31.Disconnect;
end;


umbra   (2007-08-27 16:04:00) [61]


> [Fatal Error] Unit1.pas(8): File not found: 'IdMessageParts.
> dcu'
>


Ну тогда дело плохо. У Вас какая версия Инди? Я про 10-ую.


DimOK   (2007-08-27 16:03:00) [62]


> attfile: TIdAttachmentFile;

и здесь [Error] Unit1.pas(37): Undeclared identifier: 'TIdAttachmentFile'


DimOK   (2007-08-27 15:59:00) [63]


> uses ..., IdMessageParts, ....

Теперь, иам ругается [Fatal Error] Unit1.pas(8): File not found: 'IdMessageParts.dcu'


umbra   (2007-08-27 15:36:00) [64]

ДА, это я чушь спорол

uses ..., IdMessageParts, ....
var
 attfile: TIdAttachmentFile;
{.................................}
with MyMessage.MessageParts do
  for i := 0 to Count - 1 do
       if Items[i].PartType = mptAttachment then
         begin
           attfile := Items[i] as TIdAttachmentFile;
           attfile.SaveToFile(attfile.FileName);
          end;


DimOK   (2007-08-27 15:07:00) [65]

attach := TIDAttachment.Create(MyMessage.MessageParts);

Может я в этом ошибаюсь?


DimOK   (2007-08-27 15:05:00) [66]


> См. св-во TIdMessage.MessageParts.AttachmentCount

Это понятно св-во содержит количество прикреплений, а как каждое из них по отдельности сохранить на жесткий диск?


Сергей М.   (2007-08-27 14:56:00) [67]


> для какого это message part?


Для всех подряд, очевидно.

А где ты спросил, что тебя интересует сохранение отдельной части в отдельный файл ?

Не было такого)


> attach не имеет св-ва или процедуры Count


См. св-во TIdMessage.MessageParts.AttachmentCount


DimOK   (2007-08-27 14:50:00) [68]


> Как это нет ?

для какого это message part? Это я видел у меня используется TIdMessage и
TIDAttachment....


DimOK   (2007-08-27 14:47:00) [69]


> for i := 0 to attach.Count - 1 do
>  if attach[i] is TIdAttachmentFile then
>     attach[i].SaveToFile(attach[i].FileName);


Так не помогает attach не имеет св-ва или процедуры Count  - при компиляции выделяет красным, может быть я не все unit использую.....?


umbra   (2007-08-27 13:13:00) [70]

for i := 0 to attach.Count - 1 do
 if attach[i] is TIdAttachmentFile then
    attach[i].SaveToFile(attach[i].FileName);


Сергей М.   (2007-08-27 12:29:00) [71]


> как работает эта функция в хелпе нет ни каких данных


Как это нет ?

Вот цитата как раз из хэлпа к этой ф-ции:

Stores a message part to a disk file.
function SaveToFile(const FileName: TFileName): Boolean;

Parameters

const FileName: TFileName

File name where the message part will be stored.

Return Value

Boolean - True when the message parts is stored.

Description

SaveToFile is a Boolean function used to store the attachment that represents the message part to the file specified in Filename.



Все просто и понятно, что еще надо ?


Страницы:   1 2 3 4

Наверх

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