Ошибка IRRESOLVABLECONFLICT при попытке удалить вложения из электронной почты

#c# #microsoft-graph-api

#c# #microsoft-graph-api

Вопрос:

Я написал программу для архивирования электронных писем из Outlook с использованием Microsoft Graph. После архивирования сообщения электронной почты программа удаляет вложения электронной почты. Таким образом, иногда возникает следующее исключение:

Код состояния: выполнена предварительная настройка Microsoft.График.Исключение ServiceException: Code: сообщение об ошибке ErrorIrresolvableConflict: не удалось выполнить операцию отправки или обновления, поскольку ключ изменения, переданный в запросе, не соответствует текущему ключу изменения для элемента., Не удается сохранить изменения, внесенные в элемент, для сохранения.SaveStatus: неразрешимые конфликты свойств:

Запрос клиента: 97513ec2-a8bf-4ab4-a492-0f5e0ca0bf32

C # код:

     public void DeleteAttachments(List<string> attachmentIds)
    {
        foreach (var attachmentId in attachmentIds)
        {
            Task.Run(() => DeleteAttachmentAsync(attachmentId)).GetAwaiter().GetResult();
        }
    }

    private async Task DeleteAttachmentAsync(string id)
    {
        await GraphServiceClient
            .Users[CurrentUser.Id]
            .MailFolders[CurrentFolder.Id]
            .Messages[CurrentMessage.Id]
            .Attachments[id]
            .Request()
            .DeleteAsync();
    }
 

Есть ли проблема с этим кодом?

Есть ли возможность удалить все вложения электронного письма одним пакетом?

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

Комментарии:

1. Согласно официальному документу , я боюсь, что вы можете выполнить рекурсию, чтобы получить все электронные письма и удалить вложения одно за другим, потому что нет метода пакетного удаления. i.stack.imgur.com/CcbZR.png