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