|
Программирование >> Автоматически обновляемые приложения
Outlook Как получить сообщения из папки Входящие? Опять воспользуемся помощью статьи Базы Знаний How to use the Microsoft Outlook Object Library to retrieve a message from the Inbox by using Visual C# (http: support.microsoft.com/kb/310258) и напишем пример. Вы можете получить сообщения из папки Входящие при помощи библиотеки Microsoft Outlook 2007 Object Library. Запустите новый проект и добавьте ссылку на Microsoft Outlook 12 Object Library так же, как мы делали это с примерами для Excel. Далее в редакторе кода напишите код, приведенный в листинге 15.4. \ Листинг 15.4. Получение сообщений из папки Входящие using Systems-using System. Reflections-using Outlook = Microsoft.Office.Interop.Outlook; лекция содержащихся в ней листов, ссылку на которую мы также должны получить для доступа к конкретному листу. Обратите внимание, что доступ к книгам и к листам мы можем получить как по их имени, так и по их порядковому номеру, причем нумерация книг и страниц в коллекции начинается с единицы, а не с нуля, как это обычно принято в .NET Framework. Для доступа к коллекциям книг и листов используется метод InvokeMember. Данный метод имеет несколько перегруженных версий. Интерес представляет второй параметр, который содержит флаг, характеризующий связывание. Как правило, используются следующие флаги: П BindingFlags. InvokeMethod- найти метод, определить его точку входа и выполнить его, передав ему массив фактических параметров; П BindingFlags . GetProperty - установить СВОЙСТВО; П BindingFlags . SetProperty - ПОЛучИТЬ значение СВОЙСТВа. Примечание Пример находится в папке LateBinding на прилагаемом диске. private void buttonl Click(object sender, EventArgs e) { Запускаем приложение Outlook и инициализируем его Outlook.Application oApp = new Outlook.Application(); Получаем пространство имен MAPI Outlook.NameSpace oNS = oApp.GetNamespace( mapi ) ; Заходим, используя профиль по умолчанию (без диалогового окна) oNS.Logon(Missing.Value, Missing.Value, false, true); Альтернативный метод входа под конкретным именем TODO: Если используется этот метод входа, надо указать правильное имя профайла и закомментировать предыдущую строку oNS.Logon( profilename ,Missing.Value, false, true); Получение папки Входяше (Inbox) Outlook.MAPIFolder oinbox = oNS.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderlnbox) ; Получение коллекции Items в папке Inbox Outlook.Items oltems = oinbox.Items; Получим первое сообщение Поскольку коллекция Items folder может содержать объекты разных типов, используем явное преобразование типов при присваивании Outlook.Mailltem oMsg = (Outlook.Mailltem)oltems.GetFirst() ; Выводим некоторые общие свойства textBoxl.Text = (oMsg.Subject); textBoxl.Text += textBoxl.Text + oMsg.SenderName; textBoxl.Text += textBoxl.Text + oMsg.ReceivedTime; textBoxl.Text += textBoxl.Text + oMsg.Body; Проверим наличие приложений int AttachCnt = oMsg.Attachments.Count; textBoxl.Text += textBoxl.Text + ( Attachments: + AttachCnt.ToString()); TODO: Если используется библиотека Microsoft Outlook 10.0 Object Library, раскомментировать следуюш?<[е строки /*if (AttachCnt > 0) Показать сообщение oMsg.Display(true); в модальном окне Выйти oNS.Logoff О; Явно освободить объекты oMsg = null; oltems = null; oinbox = null; oNS = null; oApp = null; Примечание Пример, в котором получаются сообщения Outlook, находится в папке Out-lookDemo на прилагаемом диске. Получение уведомлений о новых письмах Другой пример позволит в вашем приложении отслеживать появление новых писем в Outlook (листинг 15.5). В основу примера легла статья из Базы Знаний How to use the NewMail event or the NewMailEx event to monitor Outlook and to notify you in Visual C# .NET that new e-mail messages have arrived , на- for (int i = 1; i <= AttachCnt; i++) Console.WriteLine(i.ToString0 + - + oMsg.Attachments.Item(i).DisplayName); TODO: Если используется библиотека Microsoft Outlook 11.0 Object Library, раскомментировать следующие строки /*if (AttachCnt > 0) { for (int i = 1; i <= AttachCnt; i++) Console.WriteLine(i.ToString0 + + oMsg.Attachments[i].DisplayName);
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |