Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 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.009 c
1-13286
XobBIT
2003-05-21 16:52
2003.06.05
вопрос про работу с разными Interface ами


3-13055
Hooch
2003-05-16 13:42
2003.06.05
выбор субд


6-13354
Versus31
2003-04-06 09:47
2003.06.05
Печать в TWebBrowser.


6-13359
Is
2003-03-13 18:35
2003.06.05
Кто подскажет ф-цию аналог команды net send


4-13525
sucer
2003-04-02 17:58
2003.06.05
Какой нужен код в процедуре обработке HOOK для отлова MAXIMIZE





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский