Получение и установка категорий

В Outlook пользователь может применять категории к сообщениям и встречам в качестве средства упорядочения данных почтового ящика. Пользователь определяет master список категорий с цветовой кодировкой для своего почтового ящика, а затем может применить одну или несколько этих категорий к любому сообщению или элементу встречи. Каждая категория в списке master представлена именем и цветом, указанными пользователем. Api JavaScript для Office можно использовать для управления категориями, master списком в почтовом ящике, и категориями, применяемыми к элементу.

Примечание.

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

Проверка

Попробуйте интерактивные примеры, чтобы узнать, как управлять категориями с помощью надстройки Outlook. Установите надстройку Script Lab для Outlook, а затем опробуйте следующие примеры фрагментов кода.

  • Работа со списком категорий master
  • Работа с категориями элементов

Дополнительные сведения о Script Lab см. в статье Изучение API JavaScript для Office с помощью Script Lab.

Управление категориями в списке master

К сообщению или встрече можно применять только категории в списке master почтового ящика. Api JavaScript для Office можно использовать для добавления, получения и удаления master категорий.

Предварительное условие

Для управления категориями master списке надстройка должна запросить разрешение на чтение и запись почтового ящика в манифесте. Разметка зависит от типа манифеста, используемого надстройкой.

  • Только манифест надстройки: задайте для <Permissions> элемента значение ReadWriteMailbox.
  • Унифицированный манифест для Microsoft 365: задайте "name" для свойства объекта в массиве "authorization.permissions.resourceSpecific" значение "Mailbox.ReadWrite.User".

Добавление master категорий

В следующем примере показано, как добавить категорию с именем "Срочно!" в список master путем вызова addAsync в mailbox.masterCategories.

const masterCategoriesToAdd = [
    {
        "displayName": "Urgent!",
        "color": Office.MailboxEnums.CategoryColor.Preset0
    }
];

Office.context.mailbox.masterCategories.addAsync(masterCategoriesToAdd, function (asyncResult) {
    if (asyncResult.status === Office.AsyncResultStatus.Succeeded) {
        console.log("Successfully added categories to master list");
    } else {
        console.log("masterCategories.addAsync call failed with error: " + asyncResult.error.message);
    }
});

Получение категорий master

В следующем примере показано, как получить список категорий, вызвав метод getAsync для mailbox.masterCategories.

Office.context.mailbox.masterCategories.getAsync(function (asyncResult) {
    if (asyncResult.status === Office.AsyncResultStatus.Failed) {
        console.log("Action failed with error: " + asyncResult.error.message);
    } else {
        const masterCategories = asyncResult.value;
        console.log("Master categories:");
        masterCategories.forEach(function (item) {
            console.log("-- " + JSON.stringify(item));
        });
    }
});

Удаление master категорий

В следующем примере показано, как удалить категорию "Срочно!" из списка master путем вызова removeAsync в mailbox.masterCategories.

const masterCategoriesToRemove = ["Urgent!"];

Office.context.mailbox.masterCategories.removeAsync(masterCategoriesToRemove, function (asyncResult) {
    if (asyncResult.status === Office.AsyncResultStatus.Succeeded) {
        console.log("Successfully removed categories from master list");
    } else {
        console.log("masterCategories.removeAsync call failed with error: " + asyncResult.error.message);
    }
});

Управление категориями в сообщении или встрече

Используйте объект уровня item.categories элемента для добавления, получения или удаления категорий в текущем сообщении или встрече.

Важно!

Категория должна уже существовать в списке master, прежде чем ее можно будет применить. Дополнительные сведения см. в разделе Управление категориями в списке master.

Добавление категорий к элементу

В следующем примере показано, как применить категорию "Срочно!" к текущему элементу путем вызова addAsync в item.categories.

const categoriesToAdd = ["Urgent!"];

Office.context.mailbox.item.categories.addAsync(categoriesToAdd, function (asyncResult) {
    if (asyncResult.status === Office.AsyncResultStatus.Succeeded) {
        console.log("Successfully added categories");
    } else {
        console.log("categories.addAsync call failed with error: " + asyncResult.error.message);
    }
});

Получение категорий элемента

В следующем примере показано, как получить категории, примененные к текущему элементу, путем вызова getAsync в item.categories.

Office.context.mailbox.item.categories.getAsync(function (asyncResult) {
    if (asyncResult.status === Office.AsyncResultStatus.Failed) {
        console.log("Action failed with error: " + asyncResult.error.message);
    } else {
        const categories = asyncResult.value;
        console.log("Categories:");
        categories.forEach(function (item) {
            console.log("-- " + JSON.stringify(item));
        });
    }
});

Удаление категорий из элемента

В следующем примере показано, как удалить категорию "Срочно!" из текущего элемента, вызвав метод removeAsync в item.categories.

const categoriesToRemove = ["Urgent!"];

Office.context.mailbox.item.categories.removeAsync(categoriesToRemove, function (asyncResult) {
    if (asyncResult.status === Office.AsyncResultStatus.Succeeded) {
        console.log("Successfully removed categories");
    } else {
        console.log("categories.removeAsync call failed with error: " + asyncResult.error.message);
    }
});

См. также