SharePoint在添加列表项上使用javascript发送电子邮件

时间:2017-11-12 12:52:21

标签: javascript list email sharepoint-2013

我想在用户将项目添加到我的列表时向管理员发送电子邮件。我已经更改了列表的NewForm,并执行添加项目:

SP.SOD.executeFunc('sp.js', 'SP.ClientContext', retrieveListItems);

现在,在我的SharePoint中,公司已禁用列表上的电子邮件通知。所以我想要一些代码在用户添加项目后自动发送电子邮件。 我已经拥有添加该项目的人的用户名。

var loginName = "";
var userid = _spPageContextInfo.userId;
GetCurrentUser();

function GetCurrentUser() {
var requestUri = _spPageContextInfo.webAbsoluteUrl + "/_api/web/getuserbyid(" + userid + ")";

必须将电子邮件发送到公司Outlook服务器的地址。可以使用SMTP。

2 个答案:

答案 0 :(得分:0)

这是一个使用javascript发送电子邮件的小代码段。

function getUserEmail(){
 $.ajax({
   url:spPageContextInfo.webAbsoluteUrl + "/_api/web/getuserbyid("+_spPageContextInfo.userId+")?$select=Email", 
   headers:{"Accept": "application/json;odata=verbose","content-type": "application/json;odata=verbose"}, 
   success:function(result){ 
      var email = result.d.Email;
      sendEmail("xxxx@email.com", email, "body", "subject");
   }
  });
}

function sendEmail(from, to, body, subject) {

    var siteurl = _spPageContextInfo.webServerRelativeUrl;
    var urlTemplate = siteurl + "/_api/SP.Utilities.Utility.SendEmail";
    $.ajax({
        contentType: 'application/json',
        url: urlTemplate,
        type: "POST",
        data: JSON.stringify({
            'properties': {
                '__metadata': {
                    'type': 'SP.Utilities.EmailProperties'
                },
                'From': from,
                'To': {
                    'results': [to]
                },
                'Body': body,
                'Subject': subject
            }
        }),
        headers: {
            "Accept": "application/json;odata=verbose",
            "content-type": "application/json;odata=verbose",
            "X-RequestDigest": jQuery("#__REQUESTDIGEST").val()
        },
        success: function (data) {
            console.log(data);
        },
        error: function (err) {
            console.error(err);
        }
    });
}

但这也取决于你的情况。您能否提供更多有关以下内容的详细信息:

  

我已经为列表更改了NewForm并使用以下命令执行添加项:

你是怎么进行的? 您是在处理内部部署还是在线实例?

答案 1 :(得分:0)

似乎在添加项目时仍可以在列表上设置警报。所以这解决了我的问题。