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

使用JavaScript发送邮件的SharePoint权限问题及实现代码

SharePoint JavaScript发送邮件(SP.Utilities.Utility.SendEmail)所需权限说明

针对你使用JavaScript调用SharePoint REST API SP.Utilities.Utility.SendEmail 发送邮件的场景,我整理了所需的权限要求,结合你的代码场景细分如下:

核心权限基础

调用这个API的身份(不管是当前登录用户还是应用程序),必须具备发送电子邮件的权限能力,这是触发邮件发送的前提。

按调用场景细分权限

1. 当前登录用户上下文(你的代码所属场景)

你代码里使用了_spPageContextInfo获取站点信息,属于以当前登录用户身份发起请求,此时:

  • 权限级别要求:用户需要被分配包含「使用应用程序权限发送电子邮件」权限的权限级别。默认情况下,SharePoint的**「设计」、「完全控制」**权限级别自带这个权限;如果是自定义权限级别,需要确保在权限设置中勾选了「使用应用程序权限发送电子邮件」选项。
  • 站点范围:这个权限至少需要在当前站点(Web级别)生效,部分环境可能要求站点集(Site Collection)级别的权限,视你的ShareFarm配置而定。

2. 应用程序上下文(如App Only/ Azure AD应用)

如果后续你需要切换到应用身份调用(而非当前用户),则需要:

  • 经典SharePoint Add-in模型:给应用授予**「发送电子邮件」**的应用权限(在应用注册时配置)。
  • Microsoft 365现代环境:给Azure AD应用授予**「Mail.Send」**的Graph API权限(委托或应用权限,视场景选择)。

你的代码补充注意点

除了权限,你的AJAX请求还需要补全必要的请求头,否则可能出现权限验证失败或请求无效的问题,完整的headers应该是:

headers: {
    "Accept": "application/json;odata=verbose",
    "Content-Type": "application/json;odata=verbose",
    "X-RequestDigest": $("#__REQUESTDIGEST").val()
}

另外,From字段建议使用当前用户的邮箱(可通过_spPageContextInfo.userEmail获取),部分SharePoint环境会限制发送方必须是站点内的有效用户邮箱。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:05:30