Как создать задачу Outlook для определенного почтового ящика с помощью Javascript?

Я пытаюсь автоматизировать создание задачи Outlook с помощью JavaScript в локальной среде только для IE (используя Outlook 2007/2010). Я смог сделать это с помощью объекта Outlook ActiveX, но с одной небольшой загвоздкой: мой метод создает задачу в почтовом ящике пользователя по умолчанию. (9 в приведенном ниже коде — это перечисляемая константа для папки задач)

Что мне нужно сделать, так это создать задачу в отдельном общем почтовом ящике. Я ищу способ установить задачу для определенного общего почтового ящика (к которому у пользователя есть доступ) по имени, а не в личной папке пользователя (по умолчанию). То, что у меня есть, ниже.

     function createTask() {
               //create Outlook object and map to the task folder
                var outlookApp = new ActiveXObject("Outlook.Application");
                var nameSpace = outlookApp.getNameSpace("MAPI");
                var mailFolder = nameSpace.getDefaultFolder(9); //olFolderTask

               //create the task
               var task = mailFolder.Items.add('IPM.Task');
                //set task properties 
                task.Subject = 'Subject';
                task.Body = "Body of Task";          
                task.StartDate = "01/01/2012";
                task.DueDate = "06/01/2012";
                task.ReminderSet = true;
                task.Save();
      }

Я нашел некоторую потенциально полезную информацию здесь с альтернативой getDefaultFolder в GetFolderFromID, но мне не удалось найти способ с помощью JavaScript/ActiveX получить необходимый EntryID только из имени общего почтового ящика.

Я новичок в работе с Outlook, буду признателен за любые предложения или рекомендации. Спасибо!


person justaguy133    schedule 09.05.2012    source источник


Ответы (1)


Попробуйте использовать Session.Stores, как описано в это сообщение SO. Он содержит все доступные хранилища почтовых ящиков (Store) пользователь имеет в своем профиле.

После того, как вы определили Store, который вам нужен, вы можете использовать Store.GetDefaultFolder, чтобы получить интересующую вас задачу общего почтового ящика Folder.

person SliverNinja - MSFT    schedule 09.05.2012
comment
Большое тебе спасибо! Это именно то, что мне нужно. Как бы то ни было, я не смог использовать [Store.GetDefaultFolder] (msdn.microsoft.com/en-us/library/ff869924.aspx) с Outlook 2007, но смог использовать Store.GetRootFolder, чтобы выполнить работу для обеих сред. - person justaguy133; 10.05.2012