Я хотел бы удалить электронные письма в почтовом ящике определенной учетной записи с помощью C# .NET Microsoft Graph API.
Я видел сообщения, предлагающие метод DeleteAsync(), но при этом элемент удаляется навсегда. Есть ли способ удалить электронное письмо, чтобы оно было перемещено в папку «Удаленные», а не было полностью невозможно восстановить?
foreach (Microsoft.Graph.Message currMessage in emails)
{
string msgId = currMessage.Id;
string sender = currMessage.From.EmailAddress.Address.ToString();
string subejct = currMessage.Subject;
string receivedDate = currMessage.ReceivedDateTime.Value.ToLocalTime().ToString("dd/MM/yyyy hh:mm tt");
await graphClient.Users[emailUser]
.Messages[msgId]
.Request()
.DeleteAsync();
}
Вместо метода DeleteAsync вам нужно использовать метод MoveAsync, которому передается идентификатор папки, в которую вы хотите переместить. То есть примерно это будет выглядеть так: await graphClient.Users[emailUser].Messages[msgId].Request().MoveAsync(folderId);
var requestBody = new MovePostRequestBody { DestinationId = "deleteditems", }; var result = await graphClient.Users[emailUser].Messages["{message-id}"].Move.PostAsync(requestBody); попробуй это





В SDK v5 вы можете переместить сообщение в удаленные элементы следующим образом:
using Microsoft.Graph.Me.Messages.Item.Move;
var requestBody = new MovePostRequestBody
{
DestinationId = "deletedItems",
};
var result = await graphClient.Users[emailUser].Messages["{message-id}"].Move.PostAsync(requestBody);
Для SDK v4 все немного по-другому:
var result = await graphClient.Users[emailUser].Messages["{message-id}"].Move("deletedItems").Request().PostAsync();
Я использую v4, и это отлично работает, спасибо
@NootNootNoob, давай? Почему вы взяли ответ из комментариев? хахаха... В общем все больше удивляюсь, ресурс блестящий....
Вы используете SDK v4 или v5?