Outlook 2010 - 5

Измененный код правила

Устанавливать флаг DeleteAfter Submit для создания копии почтового элемента более не требуется. Однако необходимо проверить тип Class элемента, так как параметр Item представляет собой универсальный объект. Объекты, отличные от сообщений электронной почты, такие как Meeting Item (элемент собрания), можно размещать в папке Sent Items.

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

 

Событие oSentItems_ItemAdd в действии

И вновь я направил вывод в область проверки для тестирования решения Items_AddItem; оно функционировало исправно. Например, на экране 11 показано сообщение, адресованное только узлу, для которого проводится проверка. Сообщение на экране 12 адресовано лицу, которое не является членом домена RobGravelleAndCo.com. Как ожидалось, вывод поступал только от почтовых элементов. Добавление других типов элементов не составляет труда; просто измените инструкцию If в Select Case и укажите целевые типы в списке с разделителями запятыми, как показано в листинге 4.

Запуск макрокоманды Move Sent MailItems по требованию

Установленную макрокоманду Move Sent MailItems можно применить к ранее отправленным сообщениям. Для этого используйте диалоговое окно Macros (макросы), открываемое нажатием кнопки Macros на ленте. Единственная проблема в том, что открывается доступ только к общедоступным макрокомандам, к которым наша макрокоманда не относится. Даже если можно увидеть событие ItemAdd папки SentItems, обрабатывается только последнее отправленное сообщение. Поэтому необходимо добавить общедоступную подпрограмму для обработки каждого элемента в папке SentItems, как показано во фрагменте исходного текста с меткой С листинга 2. Затем можно открыть диалоговое окно Macros, выбрать новую общедоступную подпрограмму (если она еще не выбрана) и нажать кнопку Run («Выполнить»), чтобы запустить ее.

Простота и безопасность

Итак, в этой статье я рассказал о том, как использовать программный код VBA для расширения возможностей встроенных правил и параметров Outlook 2010. В частности, здесь показано два способа перемещения почтовых элементов в папку пользователя после отправки. Описанный метод гораздо безопаснее и проще многих решений, в которых применяются сложные процессы с временной синхронизацией, подверженные ошибкам вызовы Windows API или сторонние DLL-библиотеки. На клиентской стороне решение не зависит от поставщика почтового сервера и не привязано к Exchange Server. Более того, оно применимо для компании с любым количеством пользователей —от 50 до 5000. Остается лишь найти оптимальный способ распространения кода VBA. Сделать это можно по-разному, причем в одних случаях требуется содействие пользователей, а в других можно действовать дистанционно:

- использовать команду File | Export (Файл | Экспорт) в VBA-среде Outlook для экспорта модулей как файлов .bas,.cls или .frm;

- копировать файл VbaProject.otm с компьютера, на котором были подготовлены макрокоманды, на компьютеры других пользователей, заменив существующий файл VbaProject.otm;

- использовать мастер Office Profile Wizard (Proflwiz.exe) для распространения проекта VBA.

Дополнительные сведения об этих методах можно найти в статье To Distribute Microsoft OutlookVBA Code to OtherUsers.

Популярные шаблоны