c#microsoft.graph SDK复制消息到另一个邮箱

时间:2018-08-07 06:17:26

标签: c# office365 microsoft-graph

我正在尝试将已发送的邮件从用户邮箱复制到共享邮箱文件夹中。

我正在创建电子邮件作为草稿以获取其ID。

Message SavedMessage = await service.Create(client, message);

然后发送该ID。效果很好。

await service.SendEmailByMessageId(client, SavedMessage.Id, model.From);

然后,我需要将发送的电子邮件复制到另一个邮箱。 我遇到的麻烦是,当我检索这封电子邮件并将其保存到另一个邮箱时,将其作为新邮件进行检索,然后另存为草稿。

我尝试使用copy方法,但是无法计算出如何复制到另一个邮箱。复制到同一邮箱中的另一个文件夹即可。

await UserBuilder.Messages[messageId].Copy(destinationId).Request().PostAsync();

任何人都可以提供帮助吗?

更新:

试图更改IsDraft标志,但出现错误。 代码:RequestBodyRead 消息:类型“ Microsoft.OutlookServices.Message”上不存在属性“ responseHeaders”。确保仅使用由类型定义的属性名称,或将类型标记为开放类型。

使用的代码是:

Message MovedMessage = await Client.Users[crmArchiveId.Id].Messages[newMessage.Id].Move("Archive").Request().PostAsync();

MovedMessage.IsDraft = false;

return await Update(client, MovedMessage.Id, MovedMessage, "archiveuser");

public async Task<Message> Update(GraphServiceClient client, string id, Message message, string userId = null)
    {
        IUserRequestBuilder userBuilder = userId == null ? client.Me : client.Users[userId];
        return await userBuilder.Messages[id].Request().UpdateAsync(message);
    }

1 个答案:

答案 0 :(得分:0)

无法使用Graph API将状态完整的项目复制到新邮箱。如果唯一的问题是isDraft标志,则可以使用扩展属性来设置isDraft标志。将其保存到另一个邮箱后,可能需要设置

https://msdn.microsoft.com/en-us/library/ee160304(v=exchg.80).aspx