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

使用Microsoft Graph 2.0.14在收件箱创建文件夹遇请求错误

问题分析

你遇到的ErrorInvalidRequest是因为调用API的方式错误:_journalMailbox.MailFolders.Inbox.Request().CreateAsync()是尝试创建一个新的收件箱文件夹,而Office 365邮箱的收件箱是系统默认文件夹,不允许重复创建,且该接口本身不支持对默认收件箱执行Create操作。你需要的是在收件箱下创建子文件夹,应该调用收件箱的ChildFolders集合的Create方法。

解决方案

将创建文件夹的代码替换为针对ChildFolders的Create请求,同时可以优化原有的子文件夹检查逻辑。

修正后的核心代码

if (!dbErrorFolder)
{
    try
    {
        // 正确调用:在收件箱的ChildFolders下创建子文件夹
        var folder = _journalMailbox.MailFolders.Inbox.ChildFolders.Request().CreateAsync(
            new MailFolder()
            {
                DisplayName = "DB-Error_Items",
            }).GetAwaiter().GetResult();
    }
    catch (Exception ex)
    {
        throw;
    }
}

优化后的文件夹检查逻辑(可选)

原有的循环判断可以用LINQ简化,更简洁高效:

var existingFolders = inbox.ChildFolders?.Select(f => f.DisplayName.ToLower()) ?? new List<string>();
dbErrorFolder = existingFolders.Contains("db-error-items");
exchangeErrorFolder = existingFolders.Contains("exchange-error-items");

权限确认

确保你的应用注册已经添加了应用权限Mail.ReadWrite(因为你使用的是客户端凭证流,需要应用权限而非委托权限),并且已经完成管理员同意。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 05:50:23