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

Вниз

Список писем Outlook   Найти похожие ветки 

 
VitaWED   (2003-04-04 16:44) [0]

Уважаемые мастера! Как можно используя Delphi проверить папку Входящие в MS Outlook. Я используя вкладку "Server", написал такой вод код:
procedure TForm1.Button1Click(Sender: TObject);
var
mapi:NameSpace;
i:integer;
begin
mapi:=OutlookApplication1.GetNamespace("MAPI");
for i:=1 to mapi.Folders.Item(1).Folders.Count do
ListBox1.Items.Add(mapi.Folders.Item(1).Folders.Item(i).Name);
Items1.ConnectTo(mapi.Folders.Item(1).Folders.Item(2).Items);
Label1.Caption:=IntToStr(Items1.Count);
PostItem1.ConnectTo(PostItem(Items1.GetFirst));
Memo1.Lines.Add(PostItem1.SenderName);
Memo1.Lines.Add(PostItem1.Body);
...
end;
При выполнении выдается ошибка "Не поддерживается", хотя и Outlook и входящие сообщения в нем есть. Собственно их количество выдается даже на Label1. В чем фишка не ясно...


 
Bel ©   (2003-04-04 17:24) [1]

В какой строке ошибку выдаёт?

Бегло проглядев твой код, можно сказать следующее:
1. Стандартные папки (входящие, исходящие и т.д.) можно брать методом GetDefaultFolder интерфейса NameSpace.
2. Если своим кодом ты находишь папку входящие, то там должны лежать элементы типа MailItem, а не PostItem, как у тебя.


 
VitaWED   (2003-04-04 18:13) [2]

Ошибка выдается при обращении к полям или методам PostItem1, как будто он ошибочно задан. Скорее всего, так оно и есть. Но придумать, что нибудь лучше
PostItem1.ConnectTo(PostItem(Items1.GetFirst)) не получается.
Если не сложно можно поподробнее насчет GetDefaultFolder, а то я с OutlookApplication еще не работал и с ее тонкостями не знаком.
Что касается MailItem, то я его на вкладке Server не нашел, видимо остался в старых Delphi (работаю в 7).


 
VitaWED   (2003-04-04 18:17) [3]

Да и что странное: если ошибка в строчке PostItem1.ConnectTo.. то почему программа ее "проглатывает" без вопросов. Кстати, нашел на каком то форуме похожий вопрос только с MailItem. Никто не ответил. Перспективно...


 
VitaWED   (2003-04-05 09:08) [4]

Все нашел. Запустил Delphi5. У нее на вкладке Сервера есть и PostItem и MailItem. Изменил код на следующий
procedure TForm1.Button1Click(Sender: TObject);
var
mapi:NameSpace;
i:integer;
begin
mapi:=OutlookApplication1.GetNamespace("MAPI");
MailItem1.ConnectTo(_DMailItem(mapi.GetDefaultFolder(olFolderInbox).Items.Item(1)));
Caption:=MailItem1.Subject;
...
end;

Но тогда почему в седьмая Delphi отказывается даже принимать класс TMailItem?



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

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

Наверх




Память: 0.47 MB
Время: 0.016 c
7-13483
Shuric
2003-04-03 18:32
2003.06.05
Не напомнит ли кто (про реестр)


14-13444
race1
2003-05-18 13:04
2003.06.05
лета


1-13235
sKeeper
2003-05-27 09:13
2003.06.05
Как поставить моё окно поверх всего отображаемого ?


1-13146
qwerty2
2003-05-21 18:49
2003.06.05
длительные процессы и ProgressBar


3-13076
gedd
2003-05-17 17:56
2003.06.05
Настройки в BDE