Форум: "Сети";
Текущий архив: 2003.06.05;
Скачать: [xml.tar.bz2];
ВнизСписок писем 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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.01 c