尝试使用Microsoft图对多封电子邮件获取未读邮件计数

时间:2019-07-03 20:57:44

标签: c# microsoft-graph microsoft-graph-mail

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

类似https://graph.microsoft.com/v1.0/ / mailFolders / Inbox / messages?$ filter = isRead ne false&$ count = true]

但可以更改特定用户的,以上内容适用于我的签名用户的图形浏览器。

我尝试了这个示例here。这给我带来了用户列表,并试图对其进行修改而没有成功。

该应用程序具有Microsoft图形的api权限,可以读取所有邮箱中的邮件。

3 个答案:

答案 0 :(得分:0)

我可能会误解您的问题,但我认为您的麻烦是您正在使用用户标识符替换URI中的。如果正确的话,您需要将其替换为 user / useridentifier

这将使查询:

https://graph.microsoft.com/v1.0/user/ / mailFolders / Inbox / messages?$ filter = isRead ne false&$ count = true

答案 1 :(得分:0)

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

有关在没有用户上下文的情况下进行访问的更多信息,请参见https://docs.microsoft.com/en-us/graph/auth-v2-service?context=graph%2Fapi%2F1.0&view=graph-rest-1.0

请求将是 GET https://graph.microsoft.com/v1.0/users/ {id | userPrincipalName} /消息

您可以使用来电显示的ID GET https://graph.microsoft.com/v1.0/users

或在大多数情况下,使用upn(即他们的电子邮件地址)。

更多文档可在此处https://docs.microsoft.com/en-us/graph/api/user-list-messages?view=graph-rest-1.0&tabs=http

您实际上可以在我们的邮递员收藏中测试这些请求调用。 Graph Explorer纯粹是代表流程请求调用。设置说明在此处https://docs.microsoft.com/en-us/graph/use-postman

答案 2 :(得分:0)

只需在GET API中传递用户ID

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