在使用 Microsoft Graph SDK 循环转发一封电子邮件时,我遇到了请求限制,因此我选择使用批量请求功能(文档中以示例进行了描述) {3}})。
我尝试使用单个消息转发请求发布一批,但它不起作用 - 我不确定出了什么问题。
如果有帮助,调用批次的 status
返回的 Task<BatchResponseContent>
的 postAsync()
是 WaitingForActivation
。
为任何电子邮件调用此方法都有效,尽管在循环中重复调用它时,某些邮件转发请求会因节流而被忽略。
public async void ForwardMessage(mailbox, messageID, toRecipients, forwardComment)
{
await _graphServiceClient
.Users[mailbox]
.Messages[messageID.ToString()]
.Forward(toRecipients, null, forwardComment)
.Request()
.PostAsync();
}
将之前相同的单个请求包装在 BatchRequestContent
中,然后发布批处理不起作用。
public async void ForwardMessage(mailbox, messageID, toRecipients, forwardComment)
{
var batchRequestContent = new BatchRequestContent();
var request = _graphServiceClient
.Users[mailbox]
.Messages[messageID.ToString()]
.Forward(toRecipients, null, forwardComment)
.Request();
batchRequestContent.AddBatchRequestStep(request);
await _graphServiceClient.Batch.Request().PostAsync(batchRequestContent);
}