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

使用New-MgUserMessage发邮件遇“Access is denied”的权限问题排查

解决Microsoft Graph发送邮件权限拒绝问题

核心排查点及解决步骤

  • 确认权限类型正确
    证书认证属于应用身份,必须配置应用权限类型的Mail.Send,不能使用委派权限。登录Azure AD应用注册的「API权限」页面,检查Mail.Send的权限类型为「应用权限」,且状态显示「已授予管理员同意」。

  • 显式指定连接权限范围
    连接Graph时,默认可能不会加载所有已授权权限,需明确指定Mail.Send范围:

    Connect-MgGraph -TenantId $TenantId -ClientId $ClientId -CertificateThumbprint $CertificateThumbprint -Scopes "Mail.Send"
    

    执行Get-MgContext查看当前上下文,确认Scopes列表包含Mail.Send。

  • 验证UserId格式有效性
    $MsgFrom必须是租户内有效用户的UPN(如user@yourdomain.com)或ObjectId,确保该用户邮箱状态正常。

  • 尝试直接发送邮件命令
    替换New-MgUserMessage为Send-MgUserMail,直接构造参数发送,避免创建消息环节的权限问题:

    $sendParams = @{
        Message = @{
            Subject = $MsgSubject
            Body = @{
                ContentType = "HTML" # 按需改为"Text"
                Content = $MessageBody
            }
            ToRecipients = @(
                @{
                    EmailAddress = @{
                        Address = $EmailRecipient
                    }
                }
            )
        }
        SaveToSentItems = $true
    }
    
    Send-MgUserMail -UserId $MsgFrom -BodyParameter $sendParams
    
  • 等待权限生效
    管理员同意权限后,可能需要10-15分钟才能同步生效,不要立即测试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 03:55:22