我们在SharePoint 开发过程中,经常会用到发邮件的功能,例如向Manager提醒有需要待办任务等等场景。

图片来自网站,如侵权,速删

一般我们会采用Workflow或者Power Automate。今天我们不介绍这两种方式,我会在后边的文章中进行介绍。

今天我给大家介绍的方式是使用采用Client Model中的JSOM来实现邮件的发送。即“SP.Utilities.Utility.SendEmail” 的方式。

主要的代码如下:

var sendEmail=()=>{
const emailProps= {
To: [],//发送的电子邮件地址数组
CC:[],//抄送的电子邮件地址数组
Subject: "<Email Subject>",//邮件的Subject
Body: "<Email Body>"//邮件的正文,支持HML
}; var siteUrl = "Your SharePoint Site Url"; //SharePoint 网站的Url
var urlTemplate = siteUrl + "/_api/SP.Utilities.Utility.SendEmail";
getFormDigest(siteUrl).then((data)=> {
$.ajax({
contentType: 'application/json',
url: urlTemplate,
type: "POST",
data: JSON.stringify({
'properties': {
'__metadata': {
'type': 'SP.Utilities.EmailProperties'
},
'To': {
'results': emailProps.To
},
'Body': emailProps.Body,
'Subject': emailProps.Subject,
'CC': {
'results': emailProps.CC
},
}
}),
headers: {
"Accept": "application/json;odata=verbose",
"content-type": "application/json;odata=verbose",
"X-RequestDigest": data.d.GetContextWebInformation.FormDigestValue
},
success: function(data) {
console.log("Email Sent");
},
error: function(err) {
console.log("Got Error");
}
});
});
} var getFormDigest=(webUrl)=>{
return $.ajax({
url: webUrl + "/_api/contextinfo",
method: "POST",
headers: { "Accept": "application/json; odata=verbose" }
});
}

注意:

  1. 此代码必须在SharePoint Online的环境中运行。
  2. 电子邮件的收件人必须是曾经访问过此网站的用户。

因此,在结束本文之前,请注意,如果您得到一个403的错误,大多数情况下可能是由以下两种情况引起的:

  • 你没有得到上下文,因为你应该检查你得到的RequestDigest
  • 将Jquery的版本更新到最新

欢迎大家沟通交流,共同探讨SharePoint Online的使用。

SharePoint Online之通过JSOM发送邮件的更多相关文章

  1. 如何在SharePoint 当中使用纯JSOM上传任意二进制文件(小于2MB)

    在微软的官方网站上有关于如何在SharePoint当中使用JS创建一个简单的文本文件的例子,经过我的思考我觉得结合Html5特性的浏览器,是完全可以通过JS来读取到文件的内容的(这一部分的内容请大家自 ...

  2. Sharepoint 2013 创建TimeJob 自动发送邮件

    创建Time Job 继承继承SPJobDefinition 并且实现里边的 Execute方法 部署 可以手动部署,把程序集放到GAC,手动激活feature 如果部署的时候说feature已经存在 ...

  3. SharePoint Framework 向web部件中添加外部库

    博客地址:http://blog.csdn.net/FoxDave 在进行开发的时候,你很可能会想要引用一些公开的JavaScript库到你的项目中,本文将会介绍如何打包和共享这些库. 打包脚本 默认 ...

  4. SharePoint SPUtility.SendEmail 发送邮件设置级别

    前言 熟悉sharepoint开发的都知道,sharepoint默认有个发送邮件的方法,不过,最近有个需求,用户希望发送邮件的时候,带上邮件的级别. 经过研究,发现有下面的办法,可以添加邮件的发送级别 ...

  5. 基于Windows Azure 搭建基于SharePoint 2010 Intranet、Extranet、Internet (4): 配置传出邮件服务: 使用 outlook.com 发送邮件通知

    前几篇文章,已经安装了SharePoint 2010,今天将演示如何配置传出邮件.由于某些原因,企业可能没有安装自己邮件服务器,此时我们可以使用公共的邮箱服务来发送邮件通知,比如outlook.com ...

  6. sharepoint 中waiting screen dialog的使用方法(JSOM)

    sharepoint中有一个种wait screen的弹出框,其实就是一直转圈,告诉你等待一会儿时间.用法如下: 弹出: var watiDialog = SP.UI.ModalDialog.show ...

  7. SharePoint使用jsom查询当前用户信息

    前置环境:sharepoint 'use strict'; var context = SP.ClientContext.get_current(); var user = context.get_w ...

  8. 如何修改sharepoint中alert发送邮件模板

    In my post last week I talked about customizing alert notifications and alert templates. Sometimes y ...

  9. [SharePoint 2013] Set value for people editor with JSOM

    function PeoplePicker() { this.context = null; this.web = null; this.currentUser = null; this.parent ...

随机推荐

  1. 攻防世界app2 frida获取密钥

    环境准备 安装mumu模拟器 pip安装frida,这里到最后一步setup需要很长时间. 在frida github下载对应服务端. apk下载:https://adworld.xctf.org.c ...

  2. 【Azure Redis 缓存 Azure Cache For Redis】使用Redis自带redis-benchmark.exe命令测试Azure Redis的性能

    问题描述 关于Azure Redis的性能问题,在官方文档中,可以查看到不同层级Redis的最大连接数,每秒处理请求的性能. 基本缓存和标准缓存 C0 (250 MB) 缓存 - 最多支持 256 个 ...

  3. 常见的名片尺寸如何在CorelDRAW预设

    说到名片想必大家肯定不陌生,是我们生活中随处可见的物品,也是商家宣传必不可少的印刷物料.那么名片的尺寸是多少?我们做名片的时候该如何把握好名片的尺寸呢?在CDR中有专门的名片尺寸,下面小编就为大家简单 ...

  4. Spring中各个模块

    Spring中个模块介绍 核心模块 ​ 提供了对Bean的配置.管理.创建等以及IOC/DI.如果只需要提供IOC/DI功能,只需要引入Beans和Core两个jar包 Core 包含Spring框架 ...

  5. python3使用HTMLTestRunner生成测试报告

    自动化测试运行完了需要直观的了解测试结果,需要用到第三方的模块HTMLTestRunner. 一:下载 HTMLTestRunner 下载路径:https://pypi.python.org/pypi ...

  6. EDI的五个常见挑战以及如何克服这些挑战

    EDI是成功进行供应链管理的一个关键要素.它使企业能够以标准化的电子格式处理与任何交易伙伴的业务数据交换,极大简化了许多曾经繁琐的程序.然而,如果企业正在扩张或处于高速增长阶段,如何充分利用EDI仍然 ...

  7. day102:MoFang:后端完成对短信验证码的校验&基于celery完成异步短信发送&flask_jwt_extended&用户登录的API接口

    目录 1.用户注册 1.后端完成对短信验证码的校验 2.基于celery实现短信异步发送 2.用户登录 1.jwt登录验证:flask_jwt_extended 2.服务端提供用户登录的API接口 1 ...

  8. charles解决乱码

    1.点击help ssl proxying ,install Charles Root Certificate 2.点击安装证书按钮 3:点击下一步按钮 4:选中将所有的证书都放入下列存储 点击浏览按 ...

  9. Python正则表达式re模块和os模块实现文件搜索模式匹配

    ☞ ░ 前往老猿Python博文目录 ░ 因测试需要,需要提供一个可以指定目录搜索符合条件的文件名函数,搜索时可以通过*(星号)匹配0-n个字符,?(问号)匹配任意1个字符,可以指定多个文件类型,每个 ...

  10. 第15.47节、PyQt显示部件:QGraphicsView图形视图和QGraphicsScene图形场景简介及应用案例

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一.概述 Designer中的Graphics V ...