通过AJAX计算列发送电子邮件

时间:2015-06-18 03:29:13

标签: sharepoint html-email calculated-columns

我正在尝试为在sharepoint列表中创建的项目发送自动电子邮件收据。

条件

  1. 我无法使用工作流程 - 它们被禁用
  2. 我无法使用webparts - 它们被禁用
  3. 我不能使用sharepoint designer等等 - 它们都被禁用
  4. 该功能需要为OOTB
  5. 我唯一的选择是在计算列中使用javascript。我知道使用HTML:mailto标签 - 但这会打开Microsoft Outlook,而不是自动的。

    遇到此链接:

    http://geekswithblogs.net/ThorvaldBoe/archive/2014/07/03/sending-email-with-sharepoint-and-jquery.aspx

    所以,这是计算的列尝试:

    ="<button onclick=""{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': $('#__REQUESTDIGEST').val()"
    &"},success: function (data) {"
    &"alert('Eposten ble sendt');"
    &"},error: function (err) {"
    &" alert(err.responseText);"
    &" debugger;}});}"
    &"SendEMail('user@whatever.com','user@whatever.com','Test1','Test2');}"">"&"Send</button>"
    

    运行代码时,控制台会显示以下错误:'$'未定义

    有关如何克服这个问题的任何建议吗?

    由于

1 个答案:

答案 0 :(得分:0)

你继续提高标准,史蒂夫!

你真的这样对自己很难

我建议先进行下一步学习:

  • Learn all about Chrome Snippets
    这将有助于您直接在View页面上开发/执行代码,而无需将其填入计算列或任何脚本 in SharePoint

  • 学习jQuery(使用Snippets)
    检查jQuerify它会在jQuery不可用的地方注入

  • [可选]了解Tampermonkey
    这将有助于立即在SharePoint页面上执行您的脚本(无需在

  • 中包含脚本
  • 学习JSOM Ajax调用和REST Ajax调用(REST在2010年实施半烘焙) 再次;首先在Snippets中进行

如果一切正常,你就完成了一半,你可以将它全部包装在计算列中(再次,这是所有未记录的黑客攻击微软技术,如果他们决定在更新中进行更改你是煮熟...例如他们在2013年夏天禁用了SCRIPT标签;这就是为什么你现在必须使用空白的IMG onload技巧

注意:我更新了CalcMaster BookMarklet on GitHub。在您的代码段工作后,您可以将其粘贴到现有的计算列公式中,并将其包装在 IMG onload &amp;“..”表示法中,只需点击一下

如果您发送电子邮件,请告知我们;我从来没有这样做过......我远离了无法使用SharePoint Designer的项目。

一旦你掌握了上述所有内容,你就会学到如此多的前端开发,我建议你去寻找另一份工作。