我们在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. 巧妙使用MathType快速编写数学函数公式

    在我们日常的工作与学习中,你是否也会遇到过无法在电脑中编写数学函数公式的情况呢? 简单的数学函数公式或许经过我们不懈的努力也可以成功的编写,不过这会耽误我们大把的时间. 想象一下,假如你的老板急着催你 ...

  2. github搭建html网站到外网

    最近想自己弄个网站,但又没有服务器可以用,只好借用强大得github来帮忙了,不过GitHub确实有这个功能. 感谢以下大佬得教程,非常得详细,但我觉得还是有必要记录下来. 大佬链接: https:/ ...

  3. Kafka 内存管理类BufferPool

    基本上每个成熟的框架或者工具都有一套内存管理机制 BufferPool 是Kafka  用来管理内存的工具类         BufferPool内存管理包含2个部分,已用空间+可用空间(未申请空间+ ...

  4. Java继承的两道实验题目

    设计一个表示二维平面上点的类Point,包含有表示坐标位置的Protect类型的成员变量 获取和设置x和y值的public方法 package classwork_6; public class Po ...

  5. Access数据库简介

    一.Access数据库的简介 1.microsoft office access是由微软发布的关联式数据库管理系统.它结合了 microsoft jet database engine 和 图形用户界 ...

  6. AndroidStudio中默认不导入org.apache.http等包的解决方法

    参考:http://www.cnblogs.com/xiadongqing/p/5942459.html Eclipse ADT中默认引入了org.apache.http包,而AndroidStudi ...

  7. springsecurity实现前后端分离之jwt-资料收集

    https://www.jianshu.com/p/5b9f1f4de88d https://www.jianshu.com/p/725d32ab92f8 https://blog.csdn.net/ ...

  8. 通过Apache Hudi和Alluxio建设高性能数据湖

    T3出行的杨华和张永旭描述了他们数据湖架构的发展.该架构使用了众多开源技术,包括Apache Hudi和Alluxio.在本文中,您将看到我们如何使用Hudi和Alluxio将数据摄取时间缩短一半.此 ...

  9. 如何自动化你的Excel导入导出(Java)?

    GitHub | 中文 | English | 博客 为什么使用AutoExcel? Excel导入导出在软件开发中非常常见,只要你接触过开发,就一定会遇到.相信很多人会跟我一样选择用Apache P ...

  10. PyQt(Python+Qt)学习随笔:QTreeWidget的topLevelItemCount属性

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 QTreeWidget的topLevelItemCount属性是一个只读属性,用于保存树型部件中顶层 ...