我正在尝试将已发送的邮件从用户邮箱复制到共享邮箱文件夹中。
我正在创建电子邮件作为草稿以获取其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);
}
答案 0 :(得分:0)
无法使用Graph API将状态完整的项目复制到新邮箱。如果唯一的问题是isDraft标志,则可以使用扩展属性来设置isDraft标志。将其保存到另一个邮箱后,可能需要设置。
https://msdn.microsoft.com/en-us/library/ee160304(v=exchg.80).aspx