Я решил использовать EWSOofUtil.dll и создать внешний скрипт powershell для передачи моего основного текста AppointmentItem для установки сообщения. EWSOofUtil.dll установит вне офиса с помощью встроенного web - сервера.
Как изменить параметры отсутствия на работе (OOF) в Outlook 2010 через VBA
Я работаю в MSP, и у нас есть один почтовый ящик, который мы используем для обработки входящих запросов электронной почты в нашу систему продажи билетов. Я создал сценарий VBA, который запускает и обрабатывает новые электронные письма и тому подобное. Мы используем Outlook 2010 (32-разрядная версия) и работаем в Office 365 [Exchange 2013] .
Теперь мы хотим автоматически включить и отключить сообщение об отсутствии на работе в почтовом ящике в нерабочее время и в праздничные дни. У меня уже есть большая часть кода, написанного для проверки любых текущих собраний, которые бы включали и отключали Out of Office, когда собрания начинаются / заканчиваются. Таким образом, мы можем настроить повторное собрание каждый день в 17:00, чтобы включить сообщение OOF, и в 4:00, чтобы отключить его. Это также будет работать с событиями на весь день (например, праздники).
Единственная проблема, с которой я сталкиваюсь, - это установка фактического сообщения OOF для включения / выключения и изменение тела сообщения. Мы хотели бы иметь возможность установить тело сообщения на основе
Ниже приведены мои фрагменты, которые получают статус OOF и включают / отключают OOF на основе различных выполненных мной поисков. Похоже, CDO 1.21 будет самым простым способом, но Outlook 2010, похоже, не поддерживает CDO 1.21.
Получить статус OOF
Private Function QOA_GetOOFStatus() Dim oNS As Outlook.NameSpace Dim oStores As Outlook.Stores Dim oStr As Outlook.Store Dim oPrp As Outlook.PropertyAccessor Dim OOFStatus As Boolean OOFStatus = False Set oNS = Application.GetNamespace("MAPI") Set oStores = oNS.Stores For Each oStr In oStores If oStr.ExchangeStoreType = olPrimaryExchangeMailbox Then Set oPrp = oStr.PropertyAccessor OOFStatus = oPrp.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x661D000B") End If Next tempValue = OOFStatus QOA_GetOOFStatus = OOFStatus End Function
Включить / выключить OOF с сообщением тела
Const PR_OOF_STATE = "http://schemas.microsoft.com/mapi/proptag/0x661D000B" Dim oStore As Outlook.Store, oProp As Outlook.PropertyAccessor Dim oStorageItem As Outlook.StorageItem Set oStorageItem = Application.Session.GetDefaultFolder(olFolderInbox).GetStorage("IPM.Note.Rules.OofTemplate.Microsoft", olIdentifyByMessageClass) oStorageItem.Body = "I am out of the office!" oStorageItem.Save For Each oStore In Session.Stores If oStore.ExchangeStoreType = olPrimaryExchangeMailbox Then Set oProp = oStore.PropertyAccessor oProp.SetProperty PR_OOF_STATE, True End If Next Set olkIS = Nothing Set olkPA = Nothing
Я предполагаю, что есть что-то связанное с «внутренними» и «внешними» ответами OOF, которые представлены в Exchange 2010, 2013.
Я не против запуска внешней программы, которая устанавливает OOF-сообщения.
Любые предложения или мысли о том, как я могу действовать? Я бы не хотел сдаваться, когда мне просто нужно найти способ отключить / включить OOF!
1 ответ на вопрос
Похожие вопросы
-
2
Конвертировать макрос Excel 4.0 в VBA
-
3
Исправить (сегодня) дату в Excel
-
4
Excel 2007 | Удалить пустые поля из сводных таблиц
-
-
2
Как будет выглядеть макрос Outlook 2007 для автоматизации Специального вставки - неформатированный т...
-
4
Открыть несколько экземпляров Excel без сообщения блокировки PERSONAL.xlsb
-
1
Запретить другим получателям Outlook пересылку, печать или копирование содержимого из вашего сообщен...
-
5
Выделить весь столбец без строки заголовка в макросе Excel
-
1
Восстановить пароль защиты листа в Excel
-
2
Как настроить отфильтрованные ответы об отсутствии на работе в Outlook 2007?
-
2
Excel VBA: как очистить выделение без активации листа