Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.08.20;
Скачать: CL | DM;

Вниз

MS Outlook   Найти похожие ветки 

 
Destroyer ©   (2006-07-31 12:51) [0]

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


 
Max Zyuzin ©   (2006-07-31 12:55) [1]

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


 
Destroyer ©   (2006-07-31 15:48) [2]

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


 
Destroyer ©   (2006-07-31 19:51) [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-08-01 11:02) [4]

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

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-08-01 16:21) [5]

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



Страницы: 1 вся ветка

Текущий архив: 2006.08.20;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.045 c
15-1153430430
ronyn
2006-07-21 01:20
2006.08.20
dreamweaver


2-1154202529
Bad mathematics
2006-07-29 23:48
2006.08.20
Процентное соотношение


15-1153907501
Чапаев
2006-07-26 13:51
2006.08.20
Делфи2006, вопрос для телепатов


15-1153845017
oldman
2006-07-25 20:30
2006.08.20
Как съезжают программисты...


1-1152005018
Kolan
2006-07-04 13:23
2006.08.20
Как связать менеджер настроек и объект?