我们在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. sqlilab less19-less22

    less19 当账号密码正确时,会将当前的refer和ip存入数据库.对这两个值同时没有进行过滤.考虑使用sqlmap对这两个参数进行注入 less-20 当cookie uname存在时,并且不是p ...

  2. Elements-of-Python01_Input/Output

    (内容包括输入input,输出print,注释comment,预测类型转换eval,命名与赋值Name & Bestow) 输入Input 和 输出Print Python中利用input() ...

  3. 使用IDM批量抓取音效素材下载

    IDM下载器的站点抓取功能,能够抓取网站上的图片.音频.视频.PDF.压缩包等等文件.更重要的是,能够实现批量抓取操作,省时省力.今天就来看一下,如何用IDM巧妙的批量抓取音效素材. 1.进入音效合辑 ...

  4. 使用javaxmail发送文字邮件

    package com.rupeng.javaMail; import java.util.Properties; import javax.mail.Authenticator;import jav ...

  5. 接上一篇:(四) 控制反转(IOC)/ 依赖注入(DI)

    spring 核心功能:beans.core.context.expression Spring设计理念 Spring是面向Bean的编程 Spring三个核心组件(Core.Context.Bean ...

  6. 3. git命令行操作之远程库操作

    3.1 基本操作 注册GitHub账号 在本地创建一个本地库并初始化 登录到gitHub创建一个远程库 注意:windows的凭据管理器中会保存github登录信息.如果要切换登录者,先删除相应凭据 ...

  7. 蓝桥杯——测试次数·摔手机(2018JavaB组第4题,17分)

    x星球的居民脾气不太好,但好在他们生气的时候唯一的异常举动是:摔手机. 各大厂商也就纷纷推出各种耐摔型手机.x星球的质监局规定了手机必须经过耐摔测试,并且评定出一个耐摔指数来,之后才允许上市流通. x ...

  8. K8ssandra——专为Kubernetes云原生数据而生

    DataStax最近发布了K8ssandra--一个开源的.部署于Kubernetes上的Apache Cassandra全新发行版本.K8ssandra一站式集合了在Kubernetes上部署开源版 ...

  9. CentOS升级参考

    CentOS生产系统升级策略: 1)升级前评估 a)确认kernel或包bug. b)用评估工具 c) 测试验证 2)确认升级内容 a)单独升级kernel b)单独升级包 c)都升级 4)确认升级方 ...

  10. 初探Lerna

    1.简介 首先是关于Monorepo(一篇不错的介绍Monorepo的文章),它是管理项目代码的一种方式,主要手段是通过在一个项目仓库中管理多个模块/仓库包.而Multirepo是传统的仓库管理方法, ...