如何使用Graph获取未读电子邮件

时间:2016-06-30 12:49:41

标签: azure

我们公司有一个门户网站,我们的用户使用与Azure AD同步的公司帐户登录。我们希望在我们的门户网站上显示未读电子邮件的指标。我是否需要获取所有电子邮件并计算未读的电子邮件?我可以过滤未读并计算集合吗?这两种解决方案都能带来更高的流量,所以有更多的性能方式吗?

1 个答案:

答案 0 :(得分:0)

使用Graph调用的消息的返回值还包含UnreadItemCount中的unreademail计数。最好的方法是使用NUGET包Microsoft.Graph,进行调用,将结果转换为mailfolder并检索未读的电子邮件数:

       HttpClient httpClient = new HttpClient();
        httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);

        //Get 10 Unread Messages
        Task<HttpResponseMessage> call = httpClient.GetAsync("https://graph.microsoft.com/v1.0/me/mailfolders/Inbox");
        call.Wait();
        var responseUnread = call.Result;
        if (responseUnread.IsSuccessStatusCode)
        {
            string s = await responseUnread.Content.ReadAsStringAsync();
            JavaScriptSerializer serializer = new JavaScriptSerializer();
            //Deserialize to Microsoft.Graph.MailFolder NUGET:Microsoft.Graph
            var mf = serializer.Deserialize<MailFolder>(s);

            unreadMail = mf.UnreadItemCount;
        }