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

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

MS Outlook [D7, WinXP]


Destroyer ©   (2006-07-31 12:51:00) 

Пишу программку клинер, для очистки всего что нужно нажатием нескольких кнопок. Нужно удалить\очистить все письма в Аутлуке (не экспресс). Все письма хранятся в файле *.pst, но при его удалении Аутлук начинает его искать и не находит (новый не создается). Может есть функции для управления письмами? Как такое осуществить?


Destroyer   (2006-08-01 16:21:00) [1]

Всем спасибо. Разобрался


Destroyer   (2006-08-01 11:02:00) [2]

Такой вопрос.
Вот этот код возвращает имена папок Входящие и т.д.

var
outlook, NameSpace, Folder: OLEVariant;
FolderName:string;
begin
outlook   := CreateOleObject('Outlook.Application');
NameSpace := outlook.GetNameSpace('MAPI');
Folder:=NameSpace.Folders;
FolderName:=Folder.Item[i].Name;
end;


А этот названия общих папока (Личные папки, ...)

var
NameSpace: _NameSpace;
i: integer;
CurFolder:_Folders;
begin
OutlookApplication1.Connect;
NameSpace:=OutlookApplication1.GetNamespace('MAPI');
CurFolder:=NameSpace.Folders;
i:=CurFolder.Count;
Mainform.Memo2.Lines.Add(CurFolder.Item(1).Name);
end;


В чем же разница? Почему так? И где бы найти описание всех OLE команд (компилятор не показывает их)?


Destroyer   (2006-07-31 19:51:00) [3]

Такой вопрос. Использую стандартный компонент OutlookApplication.
Вот код:

var
Inbox: MAPIFolder;
NameSpace: _NameSpace;
i,j: integer;
str: string;
FolderCount: integer;
Folder: MAPIFolder;

OutlookApplication1.Connect;
NameSpace:=OutlookApplication1.GetNamespace('MAPI');
Inbox:=NameSpace.GetDefaultFolder(olFolderInbox);
// получим количество папок
FolderCount:=NameSpace.Folders.Count;

// пройдемся по всем папкам
for j:=1 to FolderCount do
begin
 Folder:=NameSpace.Folders.Item(j);
 Mainform.Memo2.Lines.Add(Folder.Name);
 for i:=0 to Folder.Items.Count  do
   begin
    Mainform.Memo2.Lines.Add(Folder.Name);
   end;
end;


Получаем в мемо названия личных папок уч. записей. А хотелось бы получить папки (Входящие, исходящие, Черновики,...)для каждой уч. записи и в каждой папке перечисление всех писем. Как это осуществить?


Destroyer   (2006-07-31 15:48:00) [4]

Max Zyuzin, нет не велосипед, дело в том, что программа не только для почты, это только ее раздел. А пользователь сам будет выбирать что и когда он хочет стереть. Сейчас вопрос стоит именно по MS Outlook.
Почитал про COM объекты и про OLE. Как я понял, эту задачу можно осуществит двумя способами. Так? Если так, то далее - вопрос о полной автоматизации, в каком из способов проще избежать сообщений защиты Аутлука?


Max Zyuzin   (2006-07-31 12:55:00) [5]

>Destroyer ©   (31.07.06 12:51)  
Велосипед изобретаем?
1. Таких програм уже написано, перенаписано...
2. Если бы такой вот клинер завалил бы мне всю мою переписку я бы наверное кого нить задушил бы :-)


Наверх

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