API-интерфейсы Exchange и Outlook для приложений

Компания Microsoft никогда не придерживалась определенного направления при разработке Outlook и Exchange. Иногда казалось, что такое направление есть, но в очередной версии технология менялась, и при этом предпринимались попытки обеспечить обратную совместимость с предшествующей версией. Результат — головоломный набор API-интерфейсов и технологий для доступа к данным Outlook и Exchange при проектировании приложений. Выпустив Exchange Server 2007, компания Microsoft предпочла Web-службы (HTTP, XML, SOAP и WDSL) в качестве интерфейса для разработки приложений. Службы Exchange Web Services (EWS) должны быть расширены и усовершенствованы с выходом Exchange Server 14. Как отмечается в блоге группы разработчиков Exchange, управляемый API-интерфейс для EWS должен появиться именно в Exchange 14.

Недавно компания Microsoft обновила электронную документацию для MAPI Office Outlook 2007. В обновленной документации отсутствует описание Collaboration Data Objects (CDO) 1.2.1. Версия CDO 1.2.1 в последний раз выпускалась с пакетом обновления 2, поэтому понятно решение исключить ее из новой документации. Кроме того, не существует 64-разрядной версии CDO 1.2.1. В настоящее время библиотеки MAPI Client и CDO 1.2.1 нужно загружать отдельно, так как во многих приложениях используется устаревший программный код. Недавно я столкнулся с этой проблемой в Quest MessageStats 6.5.1, приложением формирования отчетов Exchange Server. В собственной среде Exchange 2007 клиентские библиотеки MAPI/CDO необходимо сначала установить на сервере отчетов MessageStats (отличном от сервера Exchange), чтобы приложение могло собирать данные из хранилищ информации. Если в почтовую организацию входит Exchange 2003, диспетчер Exchange System Manager (ESM) предоставит клиентскую подсистему MAPI для MessageStats.

Так какие же API-интерфейсы использовать, если нужно обновить старое и разработать новое приложение? Наиболее широки возможности EWS, поскольку компания Microsoft инвестирует в разработку этих служб для Exchange 2007 и будущих выпусков. Кроме того, при работе с ними пригодятся знания прежних методов проектирования. В Exchange 14 службы EWS придут на замену нескольким API-интерфейсам: WebDAV, CDO 3.0, ExOLEDB и Store Event Sinks. EWS с помощью MAPI-клиента Outlook MAPI и объектной модели Outlook Object Model (OOM) обеспечивают почти всю функциональность, потерянную в результате удаления MAPI/CDO 1.2.1. Последовательность развития интерфейсов программирования можно проследить по таблице.

Изменения API-интерфейсов Exchange Server, Exchange 2007 и Exchange 14

Если предполагается проектировать приложения для Exchange и Outlook, выбор API-интерфейса упрощается. Если нужно обслуживать приложения для Exchange, то яснее становится путь обновления этого приложения в целях совместимости с новыми версиями Exchange Server.

Просроченный цифровой сертификат влияет на сообщения, отправленные до истечения срока его действия

Об этой очевидной истине полезно помнить администраторам, которые забывают возобновить цифровые сертификаты. Обычно цифровые сертификаты выдаются на год или несколько лет. Сообщения электронной почты с цифровой подписью, отправленные до истечения срока действия сертификата, использованного при подписывании, вызовут ошибку, если их откроют после истечения срока действия сертификата.

Если получатель открывает сообщение с цифровой подписью до даты истечения сертификата, сообщение, дополненное маленькой ленточкой сертификации, выглядит корректно. Если получатель откроет то же сообщение после завершения срока действия сертификата, он получит предупреждение об ошибке сертификации. Пользователи Microsoft Office Outlook увидят предупреждение в области заголовка сообщения: «There are problems with the signature. Click the signature button for details». Щелкните на кнопке подписи (желтый ромб с красным восклицательным знаком, который заменяет ленточку сертификации), чтобы открыть окно, показанное на экране 1.

Предупреждение о недействительности цифровой подписи

Нажмите кнопку Details, чтобы увидеть окно Message Security Properties с дополнительными сведениями о сертификате. Это окно содержит основную ошибку, в данном случае — certificate used to create the signature is no longer valid, как показано на экране 2.

Окно Message Security Properties

Из окна Message Security Properties можно выбрать команды View Details и View Certificate. На экране 3 мы видим окно View Certificate, в котором показано, что срок действия сертификата истек 13 декабря 2008 г.

Информация об ошибке сертификата

В Outlook нет встроенного механизма предварительных предупреждений об истекающих цифровых сертификатах. Обязанность администратора — заботиться о датах и, возможно, назначить задачу их обновления в Outlook до завершения срока действия. Для некоторых моих клиентов важно, чтобы потребители не видели ни единого признака уязвимости. Многие поставщики сертификатов предоставляют администраторам возможность создавать и публиковать сертификаты через Web. Часто эти инструменты управления сертификатами предупреждают о приближающемся истечении срока действия сертификата.

В Outlook 2007 вводятся дополнительные строки между строками сообщения

Как известно, компания Microsoft отказалась от Internet Explorer (IE) как инструмента генерации HTML-сообщений в Outlook 2007. Кроме того, вместо редактора Microsoft Office Outlook для подготовки сообщений электронной почты используется редактор Microsoft Office Word 2007. Это привело к небольшим неудобствам для авторов сообщений в формате HTML.

Я разговаривал со многими пользователями, в сообщениях которых появляются дополнительные пустые строки там, где предполагалась единственная пустая строка. Это происходит в Microsoft Office Outlook 2007, когда пользователь, составляющий HTML-сообщение, нажимает клавишу Enter в конце абзаца. Пользователи могут также нажать Enter, чтобы перевести курсор с намерением оставить пустую строку между абзацами. Проблема возникает, когда Word 2007 формирует тэги абзацев

в ответ на запрос Enter. При преобразовании в тэг

HTML он генерирует две строки. Это не вызывало проблем в Outlook 2003, даже если в качестве редактора электронной почты использовалась программа Word 2003. Проблема особенно досаждает, если получатель использует Web-программы чтения почты, такие как Gmail или GMX.com.

Простейшее решение — использовать сочетание клавиш Shift+Enter в конце абзаца или при создании отступа между абзацами. В ответ на нажатие клавиш Shift+Enter редактор Word 2007, встроенный в Outlook 2007, формирует тэг
. Этот тэг представляет перенос строки в HTML и не будет представлен двойной строкой в сообщении формата HTML.

Удаление PST-файла, недавно открытого в Outlook

Файл Personal Storage (PST), открытый с помощью Outlook, нельзя изменить, переместить или удалить. Он блокируется программой Outlook в течение некоторого времени. По умолчанию блокировка действует 30 минут, даже после того как PST-файл в Outlook закрыт. Однако это значение можно изменить, отредактировав реестр.

Иногда приходится работать с архивированными PST-файлами, экспортированными PST-файлами почтового ящика и даже PST-файлами как личными архивами, отделенными от основного хранилища электронной почты. Можно выбрать File, Open, Outlook Data File для подключения и просмотра существующего PST-файла. После завершения можно щелкнуть правой кнопкой мыши на верхнем уровне иерархии PST-файлов в Folder View и выбрать Close <метка файла PST>. На этом же этапе можно переместить или удалить PST-файл. При попытке выдается сообщение об ошибке, аналогичное сообщению в Outlook 2007 на платформе Windows Vista:

The action cannot be completed because the file is open in another program.

Outlook сохраняет блокировку PST-файла в течение 30 минут. Обычно пользователь закрывает Outlook, чтобы сразу получить доступ к данному PST-файлу. Изменив реестр, можно уменьшить время, в течение которого Outlook сохраняет контроль над закрытым PST-файлом. В следующий раздел добавляется параметр типа DWORD с именем PSTDisconnectDelay:

HKEY_CURRENT_USERSoftwareMicrosoftOffice OutlookPST

Если раздела PST не существует, его нужно создать. В данном случае значение PSTDisconnectDelay — время в секундах. Поэтому при десятичном значении 30 блокировка PST-файла сохраняется полминуты после закрытия вместо значения по умолчанию 1800 секунд (30 минут). Outlook необходимо перезапустить, чтобы изменение вступило в силу после считывания программой значений реестра при повторном запуске.

Уильям Лефковиц (william@mojavemediagroup.com) — технический директор Mojave Media Group, автор статей о технологиях систем сообщений и совместной работы. Имеет сертификат MCSE и звание Microsoft Exchange MVP