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