You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Microsoft Graph API删除最旧的100封邮件

实现通过Microsoft Graph API删除收件箱中最旧的100封邮件

核心逻辑

要删除最旧的100封邮件,需先按邮件接收时间升序排序(最旧的邮件排在最前),获取前100条记录,再逐一执行删除操作。

完整代码示例

string tenantId = "";
string clientId = "";
string clientSecret = "";
string sMailboxUserObjectId = "";

try
{
    var scopes = new[] { "https://graph.microsoft.com/.default" };
    var clientSecretCredential = new ClientSecretCredential(tenantId, clientId, clientSecret);
    var graphClient = new MG.GraphServiceClient(clientSecretCredential, scopes);

    // 查询收件箱中最旧的100封邮件,仅返回ID字段以减少数据传输
    var oldestMessages = await graphClient
        .Users[sMailboxUserObjectId]
        .MailFolders["inbox"]
        .Messages
        .GetAsync(requestConfiguration =>
        {
            requestConfiguration.QueryParameters.Top = 100;
            requestConfiguration.QueryParameters.Orderby = new[] { "receivedDateTime asc" };
            requestConfiguration.QueryParameters.Select = new[] { "id" };
        });

    // 遍历执行删除操作
    if (oldestMessages?.Value != null && oldestMessages.Value.Any())
    {
        foreach (var message in oldestMessages.Value)
        {
            await graphClient
                .Users[sMailboxUserObjectId]
                .MailFolders["inbox"]
                .Messages[message.Id]
                .DeleteAsync();
        }
    }
}
catch (Exception ex)
{
    // 根据业务需求添加异常处理,例如日志记录
    Console.WriteLine($"删除邮件失败:{ex.Message}");
}

重要注意事项

  • 权限配置:确保Azure AD应用已被授予Mail.ReadWrite应用权限,并完成管理员同意流程。
  • 性能优化:若需处理更多邮件,可使用Graph批量请求将多个删除操作合并为单次API调用,降低网络开销。
  • 分页说明:Graph API默认单页最多返回999条数据,本次仅需前100条,无需处理分页逻辑。

内容的提问来源于stack exchange,提问作者Venkata Praveen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 20:05:15