![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Получение почты в Delphi [D7, XP]
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.
Все просто и понятно, что еще надо ?