- Работа с почтой на MS Exchange сервере через EWS. Часть 1
- Введение
- Разработка
- Заключение
- Настройка личных Outlook для Mac
- Параметры почтового ящика
- Автоматическое настройка Microsoft 365 почтового ящика при первом запуске
- Указание Microsoft 365 почтового ящика, который нужно добавить при первом запуске
- Разрешить добавлять только корпоративные почтовые ящики
- Скрытие текста о добавлении не корпоративных почтовых ящиков
- Параметры импорта и экспорта
- Отключение импорта
- Отключение экспорта
- Параметры собраний по сети
- Отключение Skype для бизнеса собраний по сети
- Отключение Teams собраний по сети
- Параметры безопасности
- Отключение «Только шифрование»
- Отключить «Не переадваровыть»
- Разрешить сертификаты S/MIME без совпадающих адресов электронной почты
- Настройка порядка, в котором считаются сертификаты S/MIME
- Параметры расположения для прогноза погоды
- Указание расположения для прогноза погоды по умолчанию
- Отключение автоматического обновления местоположения для прогноза погоды
- Другие параметры
- Скрытие локальных папок
- Укажите, когда изображения загружаются для электронной почты
- Отключение подписей
- Указание первого дня недели в календаре
- Включить новую Outlook
Работа с почтой на MS Exchange сервере через EWS. Часть 1
Здравствуйте, читатели Хабрахабр!
В рамках серии этих постов я хочу рассказать о такой технологии как EWS и о том, как ее использовать для работы с почтой, хранящейся на серверах MS Exchange 2007 — 2010. Я постараюсь показать, как просто и удобно использовать EWS.
Мы начнем с самого начала, с знакомства с это технологией и создания первого проекта, а закончим более сложными манипуляциями с почтой.
Данный пост является вводным и он, скорее всего, окажется неинтересен тем, кто уже знаком с EWS.
Введение
Exchange Web Services (EWS) — это специальный протокол, разработанный MS, и предназначенный для управления почтой и другими компонентами составляющими MS Exchange. В основе протокола лежит XML. Описание поддерживаемых операций и примеры можно найти здесь.
EWS сравнительно молодая технология, появившаяся в Exchange 2007, и пришедшая на смену протоколу WebDAV. MS вкладывает много усилий в разработку и усовершенствование EWS. Сейчас это мощнейший инструмент, с простым и понятным API, а также с прекрасной документацией, позволяющий решать задачи менеджмента объектов MS Exchange.
Архитектура EWS показана на следующей картинке:
Как видно, EWS размещается на серверах имеющих Client Access Server (CAS) роль. Это роль отвечает за обработку запросов от пользователя, т.е. любые клиента, такие как Outlook, MFCMapi, браузер + OWA и т.д., все они подсоединяются к CAS’у. Запрос от клиентского приложения попадает в IIS, где и находится application имплементирующий функциональность EWS. Т.е. EWS «живет» в IIS и выполняется в отдельном процессе или процессах w3wp.exe (процессы в которых исполняются IIS application pool’ы). Помимо EWS там могут «крутится» и другие приложения, например, OWA, ECP и PowerShell.
EWS выступает в виде прослойки между клиентским запросом и внутренностями Exchange. Когда поступает EWS-запрос от клиентского приложения, то он проксируется во внутренние вызовы Exchange, после чего поступает на Mailbox Server role, где уже и производятся сами операции.
Примечание: Немного о внутреннем устройстве Mailbox роли можно прочитать в моей предыдущей статье.
Физически EWS размещен внутри набора .NET сборок. И начиная с Exchange 2010 туда попадают не только EWS вызовы, но и OWA. Т.е. MS, видимо, осознала не удачность идеи нескольких ветвей одинакового по функциональности кода и решила оставить только одну ветку, что должно упростить и ускорить support и разработку.
Общее представление мы получили, можем переходить к программированию.
Разработка
Нам понадобятся:
- MS Exchange Server 2007 — 2010 для тестирования
- Visual Studio 2008 — 2010
Первым делом создадим пустой консольный проект C#. Далее нужно добавить reference’ы с описанием классов/методов/типов и т.п., которые нам необходимы для работы с EWS. Самый простой способ это cделать, при наличии Exchange, это добавить Web Reference. В VS 2010 для этого нужно выделить проект и выбрать Add Service Rederence, далее Advanced, Add Web Reference и в поле URL указать адрес вашего тестового сервера в формате https://[server name]/EWS/Services.wsdl, т.е. должно получиться вот так:
После нажатия далее начнется загрузка reference’ов, и если все пройдет хорошо, вам предложат указать имя этого reference’а, и по окончанию он будет добавлен в проект.
Всё, теперь мы можем попытаться подсоединиться к серверу. И первое, что нужно сделать это получить объект ExchangeServiceBinding, это, пожалуй, самый важный объект в EWS, именно через него будут вызываться все допустимые методы и именно он идентифицирует конкретное подключение на стороне клиента. Для создания данного объекта можно воспользоваться следующим методом:
Примечание: Если сервер использует self-signed сертификат, то соединиться не получится т.к. такой сертификат не пройдет валидацию. В качестве workaround’а можно добавить дополнительный код apply’щий любые сертификаты:
Имея ExchangeServiceBinding можно попытаться сделать что-нибудь полезное, например, отправить сообщение. MSDN подсказывает, что для этого нужно воспользоваться объектом CreateItemType. Для этого напишем следующий метод:
Примечание: В приведенном коде показан самый простой способ отправки сообщения, и мы не видим «мощи» используемых классов, а они предоставляют обширные возможности по кастомизации производимых операций (задание всевозможных свойств, флагов, и т.п.). Подробнее об этом и не только я постараюсь рассказать в следующих статьях.
Вызов этого кода можно сделать так:
Если вам показалось, что код выполнился пугающе долго (у меня порядка 5 секунд), не беспокойтесь, так происходит только при первом вызове. Почти все время занимает инициализация выполняющаяся только один раз. Так же, если это был первый EWS-вызов для сервера, то серверу необходимо произвести инициализацию со своей стороны и создать новый instance w3wp для обработки запроса, а это тоже может занять какое-то время.
Заключение
Мы коротко познакомились с технологией EWS и написали простой пример отправки письма адресату.
Как видно код получается очень кратким и понятным. Документация MS достаточно хорошая и почти всегда с примерами. Если вы программировали на C++ MAPI, то вы оцените на сколько данный способ проще.
Если у вас появится задача написания почтового клиента или любые другие задачи, связанные с удаленной работой над объектами Exchange, я надеюсь, что вы воспользуетесь EWS. т.к. ИМХО данный способ наиболее простой и понятный из всех с которыми мне приходилось работать.
Источник
Настройка личных Outlook для Mac
Применимо к: _ _Outlook для Mac, Outlook LTSC для Mac 2021, Outlook 2019 для Mac
Как ИТ-администратор вы можете предоставить пользователям Mac в организации стандартный набор настроек Outlook одним из следующих способов:
- Задать параметр по умолчанию, который пользователи могут изменять.
- Принудительно задайте определенный параметр, который пользователи не могут изменить.
Следующие параметры упрощают настройку учетных записей Microsoft 365 (или Office 365 почтовых ящиков), помогают защитить данные компании и упрощают работу пользователей.
Эти ключи совместимы с CFPreferences, то есть их можно настроить с помощью корпоративного программного обеспечения для Mac, такого как Pro.
В следующем списке показаны параметры, которые данной статьи:
Параметры почтового ящика
Автоматическое настройка Microsoft 365 почтового ящика при первом запуске
Адрес электронной почты, используемый Office активации, будет добавлен при первом запуске.
Категория | Сведения |
---|---|
Домен | com.microsoft.office |
Ключ | OfficeAutoSignIn |
Тип данных | Boolean |
Возможные значения | false (по умолчанию) true |
Доступность | 16.17 |
Комментарии | Этот ключ также отключает диалоговое окно первого запуска для других приложений Office, включая Word, Excel, PowerPoint и OneNote. |
Указание Microsoft 365 почтового ящика, который нужно добавить при первом запуске
Установите домен или полный адрес электронной почты Microsoft 365, который нужно добавить при первом запуске.
Категория | Сведения |
---|---|
Домен | com.microsoft.Outlook |
Ключ | DefaultEmailAddressOrDomain |
Тип данных | Строка |
Возможные значения | Различные (например, «contoso.com») |
Доступность | 16.18 |
Комментарии | Полный адрес электронной почты или указанный домен будет добавлен в Outlook, а не Office адрес электронной почты для активации. |
Разрешить добавлять только корпоративные почтовые ящики
Укажите один или несколько доменов, которые пользователи могут добавлять в Outlook.
Категория | Сведения |
---|---|
Домен | com.microsoft.Outlook |
Ключ | AllowedEmailDomains |
Тип данных | Массив строк |
Возможные значения | Различные (например: «‘contoso \ \ .com$'») |
Доступность | 16.18 |
Комментарии | Форматирование строк в виде регулярных выражений. Учетные записи, уже добавленные в Outlook, не удаляются и не отключались. |
Скрытие текста о добавлении не корпоративных почтовых ящиков
Скрыть «Знаете ли вы? Outlook поддерживает. » в диалоговом окне Настройка успешного сообщения электронной почты.
Категория | Сведения |
---|---|
Домен | com.microsoft.Outlook |
Ключ | HideCanAddOtherAccountTypesTipText |
Тип данных | Boolean |
Возможные значения | false (по умолчанию) true |
Доступность | 16.18 |
Комментарии | Скроет только текст. Не влияет на возможность добавления не корпоративных почтовых ящиков. |
Параметры импорта и экспорта
Отключение импорта
Запретить пользователям импортировать архивные файлы (OLM- и PST-файлы) Outlook для Mac 2011 г.
Категория | Сведения |
---|---|
Домен | com.microsoft.Outlook |
Ключ | DisableImport |
Тип данных | Boolean |
Возможные значения | false (по умолчанию) true |
Доступность | 16.18 |
Комментарии | Для ключа необходимо установить значение TRUE и принудительный. |
Отключение экспорта
Запретить пользователям экспортировать файлы архива (OLM).
Категория | Сведения |
---|---|
Домен | com.microsoft.Outlook |
Ключ | DisableExport |
Тип данных | Boolean |
Возможные значения | false (по умолчанию) true |
Доступность | 16.18 |
Комментарии | Для ключа необходимо установить значение TRUE и принудительный. |
Параметры собраний по сети
Отключение Skype для бизнеса собраний по сети
Запретить пользователям добавлять сведения Skype для бизнеса собрания по сети к событиям.
Категория | Сведения |
---|---|
Домен | com.microsoft.Outlook |
Ключ | DisableSkypeMeeting |
Тип данных | Boolean |
Возможные значения | false (по умолчанию) true |
Доступность | 16.19 |
Комментарии | Для ключа необходимо установить значение TRUE и принудительный. |
Отключение Teams собраний по сети
Запретить пользователям добавлять сведения Teams собрания по сети к событиям.
Категория | Сведения |
---|---|
Домен | com.microsoft.Outlook |
Ключ | DisableTeamsMeeting |
Тип данных | Boolean |
Возможные значения | false (по умолчанию) true |
Доступность | 16.20 |
Комментарии | Для ключа необходимо установить значение TRUE и принудительный. |
Параметры безопасности
Отключение «Только шифрование»
Запретить пользователям применять параметр «Только шифрование» к электронной почте при Microsoft 365 шифрования сообщений.
Категория | Сведения |
---|---|
Домен | com.microsoft.Outlook |
Ключ | DisableEncryptOnly |
Тип данных | Boolean |
Возможные значения | false (по умолчанию) true |
Доступность | 16.40 |
Комментарии | Применимо только к новой Outlook. |
Отключить «Не переадваровыть»
Запретить пользователям применять параметр «Не переад сообщения» к электронной почте при использовании Microsoft 365 шифрования сообщений.
Категория | Сведения |
---|---|
Домен | com.microsoft.Outlook |
Ключ | DisableDoNotForward |
Тип данных | Boolean |
Возможные значения | false (по умолчанию) true |
Доступность | 16.40 |
Комментарии | Применяется только к новой Outlook. |
Разрешить сертификаты S/MIME без совпадающих адресов электронной почты
Разрешить пользователям расшифровку и шифрование сообщений S/MIME, если сертификат S/MIME не соответствует адресу электронной почты.
Категория | Сведения |
---|---|
Домен | com.microsoft.Outlook |
Ключ | AllowCertsWithoutMatchingEmailAddress |
Тип данных | Boolean |
Возможные значения | false (по умолчанию) true |
Доступность | 16.45 |
Комментарии | Применяется только к новой Outlook. |
Настройка порядка, в котором считаются сертификаты S/MIME
Указать порядок, в котором сертификаты будут использоваться для расшифровки и шифрования сообщений S/MIME.
Категория | Сведения |
---|---|
Домен | com.microsoft.Outlook |
Ключ | SMIMECertificatesLookupOrder |
Тип данных | Массив неподписаного integer |
Возможные значения | 0 (контакты), 1 (GAL), 2 (устройство), 3 (LDAP) Значение по умолчанию : [0, 1, 2, 3] |
Доступность | 16.45 |
Комментарии | Применяется только к новой Outlook. |
Параметры расположения для прогноза погоды
Указание расположения для прогноза погоды по умолчанию
Задать расположение по умолчанию для прогноза погоды в представлении календаря.
Категория | Сведения |
---|---|
Домен | com.microsoft.Outlook |
Ключ | DefaultWeatherLocation |
Тип данных | Строка |
Возможные значения | Различные (пример: «Париж, Франция») |
Доступность | 16.18 |
Комментарии | Используйте формат, возвращаемый поиском расположения для прогноза погоды в Outlook. |
Отключение автоматического обновления местоположения для прогноза погоды
Запретить пользователям выбирать автоматически обновлять расположение для расположения прогноза погоды.
Категория | Сведения |
---|---|
Домен | com.microsoft.Outlook |
Ключ | Weather_update_automatically |
Тип данных | Boolean |
Возможные значения | false (по умолчанию) true |
Доступность | 16.19 |
Другие параметры
Скрытие локальных папок
Запретить пользователям просматривать локальные папки «На моем компьютере» на боковой панели.
Категория | Сведения |
---|---|
Домен | com.microsoft.Outlook |
Ключ | HideFoldersOnMyComputerRootInFolderList |
Тип данных | Boolean |
Возможные значения | false (по умолчанию) true |
Доступность | 16.17 |
Комментарии | Находится в Outlook > Параметры Общая > > боковая панель. |
Укажите, когда изображения загружаются для электронной почты
Настройка автоматического скачивания изображений из Интернета для отправки по электронной почте.
Категория | Сведения |
---|---|
Домен | com.microsoft.Outlook |
Ключ | AutomaticallyDownloadExternalContent |
Тип данных | Целое число |
Возможные значения | 0 = Никогда (по умолчанию) 1 = В сообщениях от контактов 2 = Во всех сообщениях |
Доступность | 16.17 |
Комментарии | Найдено в Outlook > Параметры безопасность чтения > > электронной > почты. |
Отключение подписей
Запретить пользователям создавать, изменять и добавлять подписи на стороне клиента.
Категория | Сведения |
---|---|
Домен | com.microsoft.Outlook |
Ключ | DisableSitures |
Тип данных | Boolean |
Возможные значения | false (по умолчанию) true |
Доступность | 16.18 |
Комментарии | Для ключа необходимо установить значение TRUE и принудительный. |
Указание первого дня недели в календаре
Установите первый день недели в представлении календаря.
Категория | Сведения |
---|---|
Домен | com.microsoft.Outlook |
Ключ | CalendarFirstDayOfWeek |
Тип данных | Целое число |
Возможные значения | 1 = воскресенье (по умолчанию) 2 = понедельник 3 = вторник 4 = среда 5 = четверг 6 = пятница 7 = суббота |
Доступность | 16.19 |
Включить новую Outlook
Установите доступность и положение по умолчанию для переключателя Создать Outlook.
Источник