2016-06-30 4 views
0

当社のポータルはAzure ADと同期している企業アカウントを使用してログインしています。ポータルに未読メールのインジケータを表示する必要があります。私はすべての電子メールを取得し、未読のものをフィルタリングしてコレクションの数を得ることができますか?両方のソリューションが高いトラフィックを提供するので、よりパフォーマンスの高い方法がありますか?グラフを使用して未読メールを取得するには

答えて

0

グラフを使用したメッセージ呼び出しの戻り値もUnreadItemCountに未読メール数があります。最善の方法は、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; 
     } 
関連する問題