![]() |
| ||
|
|
Новости |
Поиск |
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;
DimOk (2007-08-28 10:20:00) [41]TIdAttachment(Items[i]).SaveToFile(TIdAttachment(Items[i]).FileName);
После этой строки теперь ругается пишет что не может сохранить.
DimOk (2007-08-28 10:09:00) [42]
> MyMessage.MessageParts - это постоянно одно и тоже сообщение,
> т.е. нет перехода к следующему. Как его осуществить не
> подскажите?
Все понял
IdPOP31.Retrieve(CountMessages,MyMessage)
DimOk (2007-08-28 10:03:00) [43]Понял в чем дело цикл - у меня получается черт знает каой:
CountMessages := IdPOP31.CheckMessages();
while CountMessages > 0 do begin
with MyMessage.MessageParts do begin
for i := 0 to Count - 1 do begin
if Items[i] is TIdAttachment then begin
TIdAttachment(Items[i]).SaveToFile(TIdAttachment(Items[i]).FileName);
end;
end;
end;
CountMessages := CountMessages - 1;
end;
MyMessage.MessageParts - это постоянно одно и тоже сообщение, т.е. нет перехода к следующему. Как его осуществить не подскажите?
DimOk (2007-08-28 10:01:00) [44]
> Ну есть же демо-проект в составе Инди - maildemo.dpr, почему
> не изучить его ?
C:\Program Files\Borland\Delphi7\Demos\Indy - если это там, то это текстовый фай в котором содержиться следующее:
Delphi 7
Indy V9 Demos
===========================
Indy V9 Demos
Demo applications for Indy V9 are available from the
downloads section on the Indy site at:
http://www.nevrona.com/indy
As new demos are constantly being built and tested,
this is the most up to date location for demo
downloads.
If you have any problems with demos please join the
"Indy Demos" group at yahoo groups, and report them
there:
http://groups.yahoo.com/group/Indy-Demos/
http://www.nevrona.com/indy- на этот ресурс я заходил но что там скачевать так и не понял...
Сергей М. (2007-08-28 09:44:00) [45]
> DimOk © (28.08.07 09:41) [26]
Ну есть же демо-проект в составе Инди - maildemo.dpr, почему не изучить его ?
DimOk (2007-08-28 09:41:00) [46]
> Может быть у меня Exchange забирает почту быстрее чем программа.
> ..? :)
> Попробую с другим ящиком....
Нет такая же шняга
DimOk (2007-08-28 09:33:00) [47]
> Проверил - написал ShowMessage(IntToStr(MyMessage.MessageParts))
> выдает нуль, хотя сообщение содержит два прикрепления...
> :(
Может быть у меня Exchange забирает почту быстрее чем программа...? :)
Попробую с другим ящиком....
DimOk (2007-08-28 09:28:00) [48]
> with MyMessage.MessageParts do
> for i := 0 to Count - 1 do
> if Items[i] is TIdAttachment then
> TIdAttachment(Items[i]).SaveToFile(TIdAttachment(Items[i]).
> FileName);
Вроде все ништяк - уже обрабовался....но....
Пишет List index out of bounds (0)
Проверил - написал ShowMessage(IntToStr(MyMessage.MessageParts)) выдает нуль, хотя сообщение содержит два прикрепления...:(
umbra (2007-08-27 18:02:00) [49]with MyMessage.MessageParts do
for i := 0 to Count - 1 do
if Items[i] is TIdAttachment then
TIdAttachment(Items[i]).SaveToFile(TIdAttachment(Items[i]).FileName);
DimOK (2007-08-27 17:24:00) [50]
> > ТОгда ты что-то путаешь.
> >
> > "ругани" именно на TIdMessageParts быть никак не должно.
>
> >
>
> т.е. я пишу var: mess_parts: TIdMessageParts; и все должно
> быть ништяк.....
> так пишу......
>
> И правда не ругается...:)
> Буду ковырять дальше.
но тогда у mess_parts нету функции SaveToFile
DimOK (2007-08-27 17:08:00) [51]
> ТОгда ты что-то путаешь.
>
> "ругани" именно на TIdMessageParts быть никак не должно.
>
т.е. я пишу var: mess_parts: TIdMessageParts; и все должно быть ништяк.....
так пишу......
И правда не ругается...:)
Буду ковырять дальше.
Сергей М. (2007-08-27 17:04:00) [52]
> он у меня используется
ТОгда ты что-то путаешь.
"ругани" именно на TIdMessageParts быть никак не должно.
DimOK (2007-08-27 17:00:00) [53]
> Поищите поиском по тексту модулей и добавьте нужный в юзесы.
содержиться в IdMessage, но он у меня используется.
DimOK (2007-08-27 16:57:00) [54]
> > Где и как ты "искал" - непонятно)
>
> Search->Find in Files;Find искал TIdMessageParts
Сорри ступи, нашел :)
DimOK (2007-08-27 16:55:00) [55]
> Где и как ты "искал" - непонятно)
Search->Find in Files;Find искал TIdMessageParts
Сергей М. (2007-08-27 16:47:00) [56]
> Поиск не дал результата
Быть того не может.
Если у тебя не возникли проблемы с ид-ром TIdMessage, то и с TIdMessageParts тоже не должны возникнуть - оба ид-ра объявлены в одном и том же юните IdMessage.pas.
Где и как ты "искал" - непонятно)
DimOK (2007-08-27 16:43:00) [57]
> но в 9-ке все равно где-то объявлен тип TIdMessageParts.
> Поищите поиском по тексту модулей и добавьте нужный в юзесы.
>
Поиск не дал результата.....:(
DimOK (2007-08-27 16:41:00) [58]TIdMessage содержит MessageParts у которого нет функции SaveToFile(......), для отправки сообщения я использовал следующее:
TIDAttachment.Create(MainForm.MyMessage.MessageParts,'Выгрузка.xml'); и все нормально проходит, а при получении я не знаю как добраться именно до прикрепленных данных
быть может я не правильно использую TIDAttachment....
umbra (2007-08-27 16:17:00) [59]но в 9-ке все равно где-то объявлен тип
TIdMessageParts. Поищите поиском по тексту модулей и добавьте нужный в юзесы.
DimOK (2007-08-27 16:06:00) [60]
> Ну тогда дело плохо. У Вас какая версия Инди? Я про 10-ую.
Тогда все понятно 9.00.10 :)