Применение меток чувствительности к электронной почте Microsoft Exchange с помощью кода .NET Core

Вопрос или проблема

Я хотел бы программно применить метки чувствительности к электронным письмам. Я успешно получил идентификатор электронной почты (идентификатор сообщения) и идентификатор метки чувствительности, используя Graph API в приложении .NET Core C#.

Однако я не могу найти конечную точку в Microsoft Graph API или какой-либо другой способ через код, который позволяет мне непосредственно применить метку чувствительности к электронной почте.

У меня есть необходимые разрешения приложения и данные приложения, такие как идентификатор арендатора, идентификатор клиента и т.д.

Я не хочу загружать файл электронной почты и применять метку чувствительности, как к любому другому файлу. Так же, как Graph API поддерживает обновление содержимого и темы электронного письма Exchange. Можем ли мы применять метки также?

Заранее спасибо за вашу помощь.

Ответ или решение

Ваша задача по применению меток чувствительности к электронным письмам с помощью .NET Core и Microsoft Graph API может быть решена, однако стоит отметить, что на данный момент Microsoft Graph API не предоставляет прямого способа для применении меток чувствительности к сообщениям электронной почты через API так же, как это делается с другими объектами, такими как документы.

Вместе с тем, есть альтернативный подход, который вы можете рассмотреть для выполнения этой задачи. Ниже приведены шаги, которые помогут вам реализовать это.

Шаг 1: Установка зависимостей

Убедитесь, что у вас установлены необходимые NuGet-пакеты для работы с Microsoft Graph API. В большинстве случаев вам понадобится Microsoft.Graph.

dotnet add package Microsoft.Graph

Шаг 2: Аутентификация

Для работы с Microsoft Graph вам необходимо аутентифицироваться. Используйте библиотеку Microsoft.Identity.Client (MSAL.NET) для управления токенами доступа.

using Microsoft.Identity.Client;
using Microsoft.Graph;

// Конфигурация
var clientId = "Ваш client ID";
var tenantId = "Ваш tenant ID";
var clientSecret = "Ваш client secret";

// Создание конфиденциального клиента
IConfidentialClientApplication confidentialClient = ConfidentialClientApplicationBuilder
    .Create(clientId)
    .WithTenantId(tenantId)
    .WithClientSecret(clientSecret)
    .Build();

// Получение токена доступа
var authResult = await confidentialClient.AcquireTokenForClient(new[] { "https://graph.microsoft.com/.default" }).ExecuteAsync();
var graphClient = new GraphServiceClient(new DelegateAuthenticationProvider((requestMessage) =>
{
    requestMessage.Headers.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", authResult.AccessToken);
    return Task.CompletedTask;
}));

Шаг 3: Применение метки чувствительности

К сожалению, прямое применение метки чувствительности через API не поддерживается в данный момент. Однако вы можете попробовать следующее:

  1. Использование свойства SingleValueExtendedProperties: Вы можете использовать расширенные свойства, чтобы добавлять пользовательские метаданные о метках чувствительности. Однако это не встроенный механизм применения меток.

  2. Изменение свойств письма: Если вам нужно применять метки, попробуйте обновить свойства письма, такие как importance или categories. Например:
var messageId = "Ваш message ID";  // ID вашего сообщения
var category = "Sensitive";  // Пример категории, которая может обозначать чувствительность

await graphClient.Me.Messages[messageId]
    .Request()
    .UpdateAsync(new Message
    {
        Categories = new List<string> { category }
    });

Шаг 4: Завершение

Пока не существует прямого способа применения меток чувствительности через Microsoft Graph API, следите за официальной документацией Microsoft и обновлениями API, так как функционал может измениться.

Если вы хотите, чтобы функциональность меток чувствительности была обновлена, рекомендуем вам подавать запросы через официальный канал обратной связи Microsoft, чтобы ваша потребность была учтена.

Заключение

В данный момент лучший способ — использовать расширенные свойства для хранения информации о метках чувствительности, хотя это и не замена для фактических меток. Если у вас есть дополнительные вопросы или необходима помощь в других аспектах работы с Microsoft Graph API, не стесняйтесь обращаться.

Оцените материал
Добавить комментарий

Капча загружается...