SharePoint Online之通过JSOM发送邮件

2020-12-22 18:28

阅读:558

标签:环境   span   auto   data-   code   lin   场景   电子邮件   ret   

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

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

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

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

主要的代码如下:

var sendEmail=()=>{
    const emailProps= {          
        To: [],//发送的电子邮件地址数组
        CC:[],//抄送的电子邮件地址数组
        Subject: "",//邮件的Subject
        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发送邮件

标签:环境   span   auto   data-   code   lin   场景   电子邮件   ret   

原文地址:https://www.cnblogs.com/gusongjushi/p/14152250.html


评论


亲,登录后才可以留言!