C# 如何获取邮箱中的邮件数?
我数邮箱里的邮件有问题。 我使用c#和Microsoft.Graph 1.18.0 这是我的密码C# 如何获取邮箱中的邮件数?,c#,microsoft-graph-api,C#,Microsoft Graph Api,我数邮箱里的邮件有问题。 我使用c#和Microsoft.Graph 1.18.0 这是我的密码 public async Task<long> GetItemsCountAsync(string userId) { var countOption = new QueryOption("$count", "true"); var request = ServiceClient.Value.Users[userId].
public async Task<long> GetItemsCountAsync(string userId)
{
var countOption = new QueryOption("$count", "true");
var request = ServiceClient.Value.Users[userId].Messages.Request();
request.QueryOptions.Add(countOption);
var resultMessages = new List<Message>();
var count = 0L;
do
{
var messagesResult = await request.GetAsync();
if (messagesResult.AdditionalData != null && messagesResult.AdditionalData.TryGetValue("@odata.count", out var messagesCount))
{
count = (long)messagesCount;
}
resultMessages.AddRange(messagesResult);
request = messagesResult.NextPageRequest;
}
while (request != null);
return count;
}
公共异步任务GetItemsCountAsync(字符串用户ID)
{
var countOption=新查询选项(“$count”,“true”);
var request=ServiceClient.Value.Users[userId].Messages.request();
request.QueryOptions.Add(countOption);
var resultMessages=新列表();
var计数=0L;
做
{
var messagesResult=await request.GetAsync();
if(messagesResult.AdditionalData!=null&&messagesResult.AdditionalData.TryGetValue(@odata.count),out var messagescont))
{
count=(长)messagescont;
}
resultMessages.AddRange(messagesResult);
请求=messagesResult.NextPageRequest;
}
while(请求!=null);
返回计数;
}
最后我有count=1417和resultMessages.count=760
我错过什么了吗
谢谢你的帮助 使用提供的示例,一切都很好。此处似乎无法信任的,
$count
,因为API不会返回指定搜索文件夹中邮件的准确计数(例如,有关详细信息,请参阅)
要获取消息,可以使用以下计数:
GET /users/{id | userPrincipalName}/mailFolders?$select=totalItemCount
其中totalItemCount
表示邮件文件夹中的项目数
C#示例
var folders = await graphClient.Users[userId].MailFolders.Request().Select(f =>f.TotalItemCount).GetAsync();
var totalMessagesCount = folders.Sum(folder => folder.TotalItemCount);
使用提供的示例,一切都很好。此处似乎无法信任的,
$count
,因为API不会返回指定搜索文件夹中邮件的准确计数(例如,有关详细信息,请参阅)
要获取消息,可以使用以下计数:
GET /users/{id | userPrincipalName}/mailFolders?$select=totalItemCount
其中totalItemCount
表示邮件文件夹中的项目数
C#示例
var folders = await graphClient.Users[userId].MailFolders.Request().Select(f =>f.TotalItemCount).GetAsync();
var totalMessagesCount = folders.Sum(folder => folder.TotalItemCount);