Microsoft图形 API - 无法访问单个消息(异常)



我们有一些代码已经成功运行了几个月,昨天突然间,它失败了。

基本上,我们有一个进程,它通过图形 API C# SDK (v1.12.0( 登录到邮箱,获取未读消息,循环访问每个消息,执行一些处理,然后尝试将每条消息标记为"已读"。

以下是相关代码:

var graphserviceClient = new GraphServiceClient(_metaData.GraphBaseURL,
new DelegateAuthenticationProvider(
(requestMessage) =>
{
requestMessage.Headers.Authorization = new AuthenticationHeaderValue("bearer", accessToken);
requestMessage.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
requestMessage.Headers.Add("Prefer", "outlook.body-content-type='text'");
return Task.FromResult(0);
}));
var unreadMails = graphserviceClient
.Users[_metaData.MailBox]
.MailFolders
.Inbox
.Messages
.Request()
.Filter("isRead eq false")
.Top(1000)
.Select("Body, Subject")
.GetAsync()
.Result;
emailRetrievalCount = unreadMails.Count();
// Determine if any results were returned
if (unreadMails.Count > 0)
{
// Create loop to process each item in the newResult object
foreach (var unreadMail in unreadMails)
{
// Set the isRead flag of the message to true
var readMail = graphserviceClient
.Me
.Messages[unreadMail.Id] //BREAKS HERE!!!
.Request()
.Select("IsRead")
.UpdateAsync(new Message { IsRead = true })
.Result;
}
}

异常消息:

Microsoft.图形服务异常: 代码: 错误内部服务器错误\

r消息: 发生内部服务器错误。操作失败。,无法打开邮箱。

我们检查了邮箱或帐户的权限,没有任何变化。此外,这似乎不是权限问题,因为我们可以获取令牌、登录并正确获取消息列表。只是当我们尝试获取特定消息以更新"已读"状态时,它失败了。此外,我们尝试将 SDK 更新到最新版本 v1.19.0,但出现了相同的问题。

我能够确认有一个服务行为更改,现在阻止从其他邮箱访问电子邮件。 这不是正确的行为,已得到修复。 通过更改对访问.Users[_metaData.MailBox].Messages[unreadMail.Id]的调用,应该可以解决问题。

相关内容

最新更新