Расширяем возможности почтового клиента

Наличие в Microsoft Outlook богатых возможностей настройки общего доступа к календарям может послужить основанием для выбора в качестве почтового сервера именно Microsoft Exchange. На этот раз я рассмотрю групповые расписания — функцию, появившуюся в Outlook Calendar начиная с Office XP, поскольку не так легко найти групповые расписания самостоятельно.

Совместное групповое расписание представляет собой список людей и ресурсов, который может быть сохранен для проверки их доступности и создания запросов на проведение встреч и новых почтовых сообщений. Пользователи могут получать доступ к совместным групповым расписаниям через команду меню Actions, View Group Schedules («Действия», a«Просмотр расписаний группы»), которая доступна в любой папке календаря. При вызове этой команды на экран выводится диалоговое окно расписания группы Group Schedules с подписью «Групповые расписания, сохраненные с данным календарем». Отсюда можно сделать вывод о технической реализации групповых расписаний — Outlook хранит групповые расписания с указанной папкой календаря.

В действительности групповое расписание представляет собой специальный тип встречи. Чтобы в этом убедиться, можно создать групповое расписание в любой из папок календарей, а затем просмотреть содержимое этой папки с помощью программ MFCMAPI или OutlookSpy. Дополнительные сведения об использовании этих программ содержатся во врезке «MFCMAPI: полезное бесплатное средство». При работе с OutlookSpy придется воспользоваться интерфейсом IMAPIFolder. В таблице Associated Contents папки календаря есть элемент, имя которого представляет глобальный идентификатор GUID, за ним следует название группового расписания. Значением класса сообщения для этого элемента является IPM.Appointment, которое используется Outlook для обычных элементов типа «встреча». Для этого элемента установлены свойства скрытого системного объекта, поэтому он показан только на странице «Расписание» (Scheduling) формуляра встречи, при этом у него не отображается меню и добавляется несколько дополнительных команд.

Зная, что групповое расписание представляет собой скрытое приглашение, можно попробовать разобраться, каким образом осуществляется совместное использование группового расписания с другими участниками. Групповое расписание представляет собой невидимый объект, поэтому его невозможно сохранить в виде файла и передать другим участникам. Outlook также не предоставляет средств для преобразования обычных приглашений (содержащих и список участников) в элемент группового расписания. Единственная возможность организовать совместное использование группового расписания — предоставить совместный доступ к папке, в которой хранится это расписание. Минимальная роль, позволяющая просматривать групповое расписание, — Reviewer. Пользователи, обладающие правами для просмотра элементов в папке, могут задействовать команду Actions, View Group Schedule («Действия», «Просмотр расписаний группы») и пользоваться любыми имеющимися групповыми расписаниями. При этом только пользователи, обладающие правами роли Owner («Владелец») для папки календаря, могут создавать новые групповые расписания, поскольку групповые расписания, как и пользовательские представления (Views) и формы (Forms), являются скрытыми элементами, правами на создание которых обладает только владелец.

Что нам дает групповое расписание? Сразу при открытии группового расписания отображается список участников группы и их свободное время. Можно изменять масштабирование этого представления так же, как и для обычных приглашений. Для добавления новых участников следует выбрать Add Others, Add from Address Book или просто ввести имена в поле Click here to add a name. В групповом расписании нет возможности делить участников на тех, чье присутствие обязательно и не обязательно, или распределять ресурсы.

Одна из функций группового расписания заключается в том, чтобы обеспечить возможность просмотра сведений о доступности общей папки «Занят/свободен». Общедоступные папки не опубликовывают состояние свободен/занят (в отличие от папки календаря почтового ящика), так что эта возможность поможет в тех случаях, когда в организации принято для распределения ресурсов использовать календарные папки в Public FoldersAll Public Folders, а не настраивать отдельные почтовые ящики для каждого календаря ресурса. Чтобы добавить общую папку в групповое расписание, выберите Add Others, Add Public Folder («Другие», «Добавить общую папку»).

Хотя обычные встречи предусматривают возможность введения даты начала и окончания, а также содержат кнопки навигации Autopick, для поиска тех промежутков времени, когда все участники собрания свободны, групповое расписание содержит только поле Go to («Переход»), в котором можно ввести дату, которую требуется просмотреть в групповом расписании. Хотя при таком варианте использования для организации встречи со многими участниками групповое расписание оказывается менее удобным, чем обычная встреча, оно помогает определить доступность других переговорных комнат, обладающих сходными параметрами. В этом сценарии потребуется создать групповое расписание, в котором перечислены все подходящие переговорные комнаты, определить их доступность и зарезервировать одну из них на требуемый промежуток времени, после чего выбрать Make a Meeting, New Meeting as Resource («Организовать», «Новое собрание как ресурс»). При этом будет создан запрос на новую встречу, а выбранная переговорная комната будет определена как требуемый ресурс. После этого остается только добавить участников встречи и провести другие организационные мероприятия.

Чтобы создать приглашение для одного участника группового расписания, следует выделить нужный блок времени этого участника и выбрать Make a Meeting, New Meeting («Организовать», «Создать собрание»), для общего собрания со всеми участниками выбрать Make a Meeting, New Meeting with All («Организовать», «Создать общее собрание»). Чтобы создать приглашение только для нескольких участников группового расписания, нужно удалить из списка лишних членов и вызвать команду Make a Meeting, New Meeting with All («Организовать», «Создать общее собрание»), а потом закрыть это групповое расписание без сохранения. Таким же образом можно создать приглашения с участием публичных папок, но для этого публичные папки придется добавить вручную.

Стоит отметить, что групповые расписания даже позволяют генерировать почтовые сообщения. Для отправки сообщения одному человеку следует выбрать Make a Meeting, New Mail Message («Организовать», «Создать сообщение»), для отправки сообщения всем участникам — Make a Meeting, New Mail Message to All («Организовать», «Создать почтовое сообщение всем»).

Если вы считаете, что групповые расписания — это именно то, что необходимо вашей организации для более эффективной работы, вам поможет решить любые вопросы огромный объем дополнительной вспомогательной информации, содержащейся на сайте Microsoft. Помимо статей, которые удастся найти по запросу group schedule, рекомендую обратить внимание на статью «Manage group schedules in Outlook» по адресу http://office.microsoft.com/en-us/assistance/HA011959521033.aspx.

Сью Мошер - Редактор Windows IT Pro и независимый консультант по проблемам разработки и развертывания Outlook. Ее последняя книга — Configuring Microsoft Outlook 2003 (издательство Digital Press). exadmin@turtleflock.com


«MFCMAPI: полезное бесплатное средство»

Три года назад я уже писала о mdbvu32.exe и OutlookSpy, двух удобных инструментах для исследования скрытых папок и объектов Outlook, таких как определения опубликованных специализированных форм. Я по-прежнему почти ежедневно использую OutlookSpy, но заменила mdbvu32.exe другим бесплатным инструментом Microsoft — MFCMAPI, который выполняет все задачи mdbvu32.exe, но располагает более удобным, интуитивно понятным интерфейсом и более широким набором функций. http://www.dimastr.com

В статье Microsoft «SAMPLE: MFCMAPI Demonstrates MAPI Client Code» (см. http://support.microsoft.com/default.aspx?scid=kb;en-us;291794) представлен загрузочный модуль MFCMAPI и объясняется, что данный инструмент проектировался как образец приложения для Extended Messaging API (MAPI). Желающие могут получить исходный текст на языке C++.

Если провести поиск в базе знаний Microsoft Knowledge Base с ключевым словом MFCMAPI, то можно найти несколько статей, в которых инструмент рекомендуется для выполнения таких операций, как сброс разрешений в общедоступной папке или просмотр специальных свойств. Но самое интересное применение программы — для исследования Outlook. Для начала следует запустить программу mfcmapi.exe, а затем щелкнуть на кнопке OK на первом экране и выбрать Session, Logon и Display Store Table. Выбрав почтовый профиль (не обязательно тот, который используется для работы с Outlook), нужно щелкнуть на кнопке OK. На экране появляется список информационных хранилищ для этого профиля. В случае профиля Exchange в список войдут иерархия почтовых ящиков и Public Folders. Любое хранилище, на котором сделан двойной щелчок мышью, отображается в отдельном окне. По щелчку на значке + в левой панели разворачивается список папок. Для почтового ящика отображается папка с именем Top of Information Store, ниже которой находятся Inbox и другие стандартные папки, такие как Common Views и Reminders.

Пользовательский интерфейс MFCMAPI соответствует иерархии MAPI. Каждое окно представляет какую-нибудь таблицу MAPI, например таблицу хранилища сообщений, таблицу иерархии или таблицу содержимого папки. Разработчики Extended MAPI хотели, чтобы пользователям было проще экспериментировать с API и изучать возможности интерфейса. В интерфейсе пользователя упрощен поиск папки или объекта, с которым предстоит работать. Для работы с папкой или ее свойствами необходимо выбрать папку в иерархии. Для манипуляций с объектом в папке следует дважды щелкнуть на папке, чтобы открыть ее в собственном окне и увидеть объекты, а затем дважды щелкнуть мышью на нужном объекте. Свойства отображаются как шестнадцатеричные значения и их текстовые эквиваленты (Mdbvu32 показывает только шестнадцатеричные значения). Отдельные свойства и объекты можно редактировать, удалять, копировать и вставлять. Закончив работу с профилем, следует завершить сеанс (Session, Logoff), и новый профиль готов к применению.

Если нужно работать с почтовым ящиком пользователя, у которого пока нет почтового профиля, можно выбрать Profile, Launch Profile Wizard и построить новый почтовый профиль для любого почтового ящика, на подключение к которому имеются разрешения. Однако MFCMAPI располагает механизмом для работы с почтовым ящиком без создания нового профиля. Это полезно, если необходимо проверить конкретный параметр или объект в нескольких почтовых ящиках. Сначала необходимо следовать рекомендациям статьи Microsoft «XADM: How to Get Service Account Access to All Mailboxes in Exchange 2000» (см. http://support.microsoft.com/default.aspx?scid=kb;en-us;262054), чтобы обеспечить доступ из используемой учетной записи к хранилищу почтовых ящиков Exchange, в котором находятся нужные почтовые ящики. При этом необходимо соблюдать политики безопасности и конфиденциальности предприятия. После того как соответствующие разрешения будут установлены, следует запустить MFCMAPI и зарегистрироваться с профилем, в который входит служба Exchange. Затем следует выбрать MDB, Get Mailbox Table, чтобы вывести на экран список доступных почтовых ящиков. Любой почтовый ящик открывается двойным щелчком, и его иерархия папок отображается в новом окне.

Возможности MFCMAPI не ограничиваются показом иерархии папок и объектов Outlook. С помощью команды Show Profiles меню Profiles можно увидеть список всех почтовых профилей текущего пользователя. Мне приходится много заниматься тестированием различных конфигураций; в результате образуется много профилей, для удаления которых не хватает времени. С помощью MFCMAPI мне удалось просмотреть 79 профилей и выбрать ненужные, а затем удалить их одним нажатием клавиши Delete.

MFCMAPI также отображает списки адресов. Команда View AB Hierarchy в меню Address Book позволяет просмотреть все списки адресов в текущем почтовом профиле.

Работая с любыми функциями MFCMAPI, не забывайте щелкать правой кнопкой мыши и знакомиться с контекстным меню, в котором содержится много дополнительных команд. Например, если щелкнуть правой кнопкой мыши на видимых папках пользователя (таких, как Inbox), можно получить доступ не только к командам для открытия таблиц Contents и Associated Contents (в частности, представлений на базе папок), но и к таблицам Deleted Contents и Deleted Subfolders. В MFCMAPI можно копировать и вставлять объекты между папками, поэтому для восстановления удаленных объектов достаточно скопировать и вставить их в активную папку. Другие команды удаляют все объекты и подпапки из папки и повторно отправляют все сообщения из отчетов о неудачном завершении операции доставки в выбранной папке. Можно даже экспортировать все объекты в папке в отдельные .msg-файлы. Если нужно сравнить свойства двух объектов (например, сообщение и копию этого сообщения, на которую был получен ответ), то можно сохранить каждое сообщение в текстовом файле со списком всех свойств, а затем сравнить их с помощью такого инструмента, как WinDiff.

И еще два предупреждения относительно MFCMAPI. Удаление или изменение отдельных свойств папок и объектов может привести к неожиданным последствиям, поэтому требуется тщательное тестирование. И наконец, использование такого мощного инструмента, как MFCMAPI, для исследования данных Outlook и Exchange может войти в привычку. Если окажется, что эти исследования отвлекают от настоящей работы, не говорите, что вас не предупредили.