Домой C# Отслеживание и получение количества непрочитанных сообщений в Microsoft Outlook: Справочник по C#

Отслеживание и получение количества непрочитанных сообщений в Microsoft Outlook: Справочник по C#

536
0


      Очень часто бывает полезно организовать взаимодействие вашей программы с Microsoft Office (а также воспользоваться массой встроенных в него классов). При помощи сборок, поставляемых с продуктами Office, вы можете выполнять самые разнообразные операции, в том числе те, к которым пользователь, работавший ранее с программами этого пакета, уже привык. Рассмотрим взаимодействие с Outlook в контексте приложения .NET. Для реализации данной задачи используется объектная библиотека «Microsoft Word 14.0 Object Library».
      Создайте проект «Windows Form» в «Microsoft Visual Studio», для этого запустите среду разработки и перейдите в меню Файл->Создать…->Проект. Выберете версию .Net Fraemwork и введите имя проекта.
      Перейдите в «Обозреватель решений» и найдите группу «References» которая содержит все ссылки на внешние компоненты в проекте. Сделайте клик правой клавишей мыши по данной группе и выберете из появившегося контекстного меню, пункт «Добавить ссылку…».

      У вас откроется окно «Менеджер ссылок – (имя вашего проекта)», в левой части данного окна вам будет предложено выбрать одну из категорий. Visual Studio предоставляет четыре группы для выбора.
«Сборки» — список всех компонентов платформы .NET Framework, ссылки на которые можно добавить.
«Решение» — список всех повторно используемых компонентов, созданных в локальных проектах.
«COM» — список всех COM-компонентов, ссылки на которые можно добавить.
«Обзор» — позволяет осуществлять поиск компонента в файловой системе.
      Выберете группу «Сборки» и ее подгруппу «Расширения». В центральной части окна вам будет предложен список доступных библиотек для подключения к вашему проекту. Найдите в списке библиотеку «Microsoft.Office.Interop.Outlook» и поставьте галочку рядом с именем данной библиотеки. В нижней части окна нажмите кнопку «ОК».

      После добавления библиотеки, в обозревателе решений у вас появится новый пункт «Microsoft.Office.Interop.Outlook». Для работы с добавленной ссылкой необходимо добавить следующее пространство имен с использованием директивы «using»:

  • using Outlook = Microsoft.Office.Interop.Outlook; — указывается ссылка на использование типов в пространстве имен «Microsoft.Office.Interop.Outlook», так же создается псевдоним «Outlook», этого пространства имен. 
ЧИТАТЬ ТАКЖЕ:  Запись в файл Excel из C#: Справочник по C#

      Сделайте двойной клик левой клавишей мыши по свободному пространству главной формы, для создания обработчика событий «Load». В редакторе кода откроется файл кода главной формы, с установкой курсора в обработчике события «Form1_Load». В данном событии выполним поиск и подключение к запущенному экземпляру «Microsoft Outlook» или создадим новый, а так же создадим обработчик событий при поступлении нового письма. Полный листинг для вставки в данный метод представлен ниже:

//Получаем экземпляр приложения Outlook

//Проверяем запущен ли Outlook
if (Process.GetProcessesByName("OUTLOOK").Count() > 0)
{
//Если приложение запущено, то подключаемся
app = System.Runtime.InteropServices.Marshal.GetActiveObject("Outlook.Application") as Outlook.Application;
}
else
{
//Если приложение не запущено, то запускаем
app = new Outlook.Application();
Outlook.NameSpace nameSpace = app.GetNamespace("MAPI");
nameSpace.Logon("", "", System.Reflection.Missing.Value, System.Reflection.Missing.Value);
nameSpace = null;
}

//Добавляем метод на событие получения нового сообщения
app.NewMailEx +=
new Outlook.ApplicationEvents_11_NewMailExEventHandler(outLookApp_NewMailEx);

Далее необходимо добавить метод обработки события при получении нового сообщения:

private  void outLookApp_NewMailEx(string EntrylDCollection)
{
//Получаем пространство имен MAPI
Outlook.NameSpace nameSpace = app.GetNamespace("MAPI");

//Заходим, используя профиль по умолчанию(без диалогового окна)
nameSpace.Logon("", "", System.Reflection.Missing.Value, System.Reflection.Missing.Value);

//Получение папки входящие
Microsoft.Office.Interop.Outlook.MAPIFolder inbox =
nameSpace.Session.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox);

//Получение коллекции Items в папке inbox
Outlook.Items unreadItems = inbox.Items.Restrict("[Unread]=true");

MessageBox.Show("Bы получили новое письмо!" + Environment.NewLine +
"Непрочитанных сообщений: " + unreadItems.Count,
"Новое письмо"
,MessageBoxButtons.OK);
}

Так же необходимо в класс главной формы добавить следующую переменную:

Outlook.Application app;

      Запустите ваш проект, нажав на клавишу «F5». У вас запустится главная форма в режиме ожидания нового письма. При поступлении нового письма вы увидите сообщение с количеством непрочитанных сообщений.

Ссылка для скачивания примера: Яндекс.Диск

Отслеживание и получение количества непрочитанных сообщений в Microsoft Outlook: Справочник по C#

0.00 (0%) 0 votes

ОСТАВЬТЕ ОТВЕТ

Пожалуйста, введите ваш комментарий!
пожалуйста, введите ваше имя здесь