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

Microsoft Graph API - cannot access individual message (exception)

我们有一些代码几个月来一直运行成功,昨天突然失败了。

基本上,我们有一个通过 Graph API C# SDK (v1.12.0) 登录邮箱的过程,获取未读邮件,遍历每个邮件,进行一些处理,然后尝试标记每条消息为 "read".

相关代码如下:

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.Graph.ServiceException: Code: ErrorInternalServerError\r\nMessage: An internal server error occurred. The operation failed., Cannot open mailbox.

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

我能够确认服务行为发生了变化,现在阻止从不同邮箱访问电子邮件。这是不正确的行为,已得到修复。通过更改访问 .Users[_metaData.MailBox].Messages[unreadMail.Id] 的调用,问题应该得到解决。