Главная страница
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.146 c
2-1154371871
Alral
2006-07-31 22:51
2006.08.20
CanClose


2-1154019946
zhekacoder
2006-07-27 21:05
2006.08.20
Что такое pointer


15-1153403889
icq
2006-07-20 17:58
2006.08.20
icq-клиент


15-1153473735
PSPF2003
2006-07-21 13:22
2006.08.20
Поисковик кодера


2-1154254593
Destroyer
2006-07-30 14:16
2006.08.20
Переменные среды (%UserProfile%)