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

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

Работа с Outlook


Kolos_rus ©   (2003-07-31 12:38:00) 

Как получить список писем в папке ВХОДЯЩИЕ Outlook, найти письмо например по теме и извлечь из него вложение (возможно оно там не одно).


valwhite   (2003-08-01 06:13:00) [1]

Что-то примерно такое:

procedure TForm3.Button3Click(Sender: TObject);
var
MyOlApp, InboxEK, EKItem, myFolder, myItem, EkAttachments, MyNameSpace: OleVariant;
i, j, k, m: integer;
AttFileName: string;
// CurNode, FldNode1, FldNode2, ItemNode, AttNode: TTreeNode;
begin
MyOlApp := CreateOLEObject("Outlook.Application");
MyNameSpace := MyOlApp.GetNamespace("MAPI");
try
for i := 1 to MyNameSpace.Folders.Count do begin
Application.ProcessMessages;
myFolder := MyNameSpace.Folders(i);
for j := 1 to myFolder.Folders.Count do begin
myItem := myFolder.Folders(j);
InboxEK := myFolder.Folders(j);
for k := 1 to InboxEK.Items.Count do begin
EKItem := InboxEK.Items(k);
// ItemNode := TreeView1.Items.AddChild(FldNode2,EKItem.Subject+" Размер:"+IntToStr(EKItem.Size));
// ItemNode.ImageIndex := 15;
// ItemNode.SelectedIndex := 15;
for m := 1 to EKItem.Attachments.Count do begin
EkAttachments := EKItem.Attachments(m);
AttFileName := EkAttachments.FileName;
// AttNode := TreeView1.Items.AddChild(ItemNode,"Файл:"+IntToStr(m)+": "+AttFileName);
//******************* Сохранить как файл: ***********************************
//
( "C:\Tmp\Att\"+EkAttachments.FileName)

Что-то примерно такое:

procedure TForm3.Button3Click(Sender: TObject);
var
MyOlApp, InboxEK, EKItem, myFolder, myItem, EkAttachments, MyNameSpace: OleVariant;
i, j, k, m: integer;
AttFileName: string;
// CurNode, FldNode1, FldNode2, ItemNode, AttNode: TTreeNode;
begin
MyOlApp := CreateOLEObject("Outlook.Application");
MyNameSpace := MyOlApp.GetNamespace("MAPI");
try
for i := 1 to MyNameSpace.Folders.Count do begin
Application.ProcessMessages;
myFolder := MyNameSpace.Folders(i);
for j := 1 to myFolder.Folders.Count do begin
myItem := myFolder.Folders(j);
InboxEK := myFolder.Folders(j);
for k := 1 to InboxEK.Items.Count do begin
EKItem := InboxEK.Items(k);
// ItemNode := TreeView1.Items.AddChild(FldNode2,EKItem.Subject+" Размер:"+IntToStr(EKItem.Size));
// ItemNode.ImageIndex := 15;
// ItemNode.SelectedIndex := 15;
for m := 1 to EKItem.Attachments.Count do begin
EkAttachments := EKItem.Attachments(m);
AttFileName := EkAttachments.FileName;
// AttNode := TreeView1.Items.AddChild(ItemNode,"Файл:"+IntToStr(m)+": "+AttFileName);
//******************* Сохранить как файл: ***********************************
//
EkAttachments.SaveAsFile("C:\Tmp\Att\"+EkAttachments.FileName);
//
//****************************************************************************
// AttNode.ImageIndex := 3;
// AttNode.SelectedIndex := 2;
end;
end;
end;
end;
finally
MyNameSpace.LogOff;
myOlApp.quit;
myOlApp := UnAssigned;
end;
end;


Digitman   (2003-07-31 13:37:00) [2]

какое отношение имеет тема вопроса к разделу "Сети" ?
задавай тот же вопрос в "Общие", ибо Outlook по сабжу вопроса выступает просто как обычный OLE-сервер автоматизации.


Наверх

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