Главная страница
    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
3-13006
Ш-К
2003-05-14 21:00
2003.06.05
Как проверить связь с сервером?


3-13077
Pat
2003-05-18 09:24
2003.06.05
DisplayWidth для Lookup поля


1-13138
Intell
2003-05-25 22:13
2003.06.05
Как осуществить чтение из ресурса?


1-13142
Rocker
2003-05-26 10:07
2003.06.05
Конвертирование в HTML


4-13520
Arkara
2003-04-07 04:49
2003.06.05
RasDial - как подключить WinAPI?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский