C# 尝试在多封电子邮件上使用Microsoft graph获取未读邮件数

C# 尝试在多封电子邮件上使用Microsoft graph获取未读邮件数,c#,microsoft-graph-api,microsoft-graph-mail,C#,Microsoft Graph Api,Microsoft Graph Mail,我希望能够获得我的租户中特定姓名的未读电子邮件数量 类似于:me/mailFolders/Inbox/messages?$filter=isreadne false&$count=true] 但是,为了能够为特定用户更改me,上面的内容在graph explorer中适用于我的签名用户 我试过这个例子。这给我带来了一个用户列表,并试图修改它,但没有成功 该应用程序具有api权限,允许microsoft graph读取所有邮箱中的邮件。我可能误解了你的问题,但我认为你的问题是你正在用用户标识符替换

我希望能够获得我的租户中特定姓名的未读电子邮件数量

类似于:me/mailFolders/Inbox/messages?$filter=isreadne false&$count=true]

但是,为了能够为特定用户更改me,上面的内容在graph explorer中适用于我的签名用户

我试过这个例子。这给我带来了一个用户列表,并试图修改它,但没有成功


该应用程序具有api权限,允许microsoft graph读取所有邮箱中的邮件。

我可能误解了你的问题,但我认为你的问题是你正在用用户标识符替换URI中的me。如果这是正确的,您需要将其替换为用户/useridentifier

这将使问题:


/mailFolders/Inbox/messages?$filter=isRead ne false&$count=true

访问用户邮箱而不是登录用户。您需要使用应用程序(仅应用程序)令牌调用api。这将需要为Mail.Read请求应用程序权限(而不是委托权限)

此处提供了有关在没有用户上下文的情况下获取访问权限的更多信息

请求将是 获取{id | userPrincipalName}/messages

您可以使用来自呼叫的id 得到

或者使用upn,这是他们的电子邮件地址,在大多数情况下,你可能已经有

这里有更多的文档


实际上,您可以在我们的Postman集合中测试这些请求调用。Graph Explorer纯粹用于代表流请求调用。安装说明在这里

只需在GET API中传递用户ID即可

{{UserId}} - username/mailid/principalName
    
 https://graph.microsoft.com/v1.0/users/{{UserId}}/mailFolders/Inbox/messages?$filter=isRead ne true&$count=true

完成这项工作后,我认为最好使用graph webhooks向我的应用程序发送通知。每次收到电子邮件时。现在,我将不得不继续要求每x时间的未读电子邮件计数。