【问题标题】:SharePoint 2013 Send Email from Contact Us Form via REST/JSSharePoint 2013 通过 REST/JS 从联系我们表单发送电子邮件
【发布时间】:2017-08-02 08:47:18
【问题描述】:

提前感谢您的回答。

我正在尝试通过联系我们表单发送电子邮件。它似乎有效,但我没有收到任何电子邮件。我对 REST 没有任何经验,希望有经验的人看看他们是否能发现任何问题。

这是在 SharePoint 2013 企业发布网站上。

出于隐私目的,我更改了一些变量和 ID。

HTML在自定义页面布局中,在jQuery后相同页面布局中调用JS成功。

JS:

$.noConflict();
jQuery( document ).ready(function( $ ) {
  // Code that uses jQuery's $ can follow here.
    function submitForm() {
        var toAddress = "email@domain.com";
        var fromAddress ="email@domain.com";
        var emSubject = "Public Contact Us Form Entry";

        var lblName = "Name: ";
        var valName = document.getElementById('form-name').value;
        var lblEmail = "Email: ";
        var valEmail = document.getElementById('form-email').value;
        var lblMessage = "Message: ";
        var valMessage = document.getElementById('form-message').value;
        var emBody = lblName.concat(valName,lblEmail,valEmail,lblMessage,valMessage);

        var data = {
            properties: {
                __metadata: { 'type': 'SP.Utilities.EmailProperties' },
                From: fromAddress,
                To: toAddress,
                Body: emBody,
                Subject: emSubject
            }            
        }

        var urlTemplate = _spPageContextInfo.webAbsoluteUrl + "/_api/SP.Utilities.Utility.SendEmail";

        $.ajax({
            contentType: 'application/json',
            url: urlTemplate,
            type: "POST",
            data: JSON.stringify(data),
            headers: {
                "Accept": "application/json;odata=verbose",
                "content-type": "application/json;odata=verbose",
                "X-RequestDigest": $("#__REQUESTDIGEST").val()
            },
            success: function (data) {
                alert('User(s) notified')
            },
            error: function (err) {
                alert("Unable to send email -- " + JSON.stringify(err));
            }
        });
    }
});

HTML:

<div class="label">Name</div>
<input name="Name" type="text" id="form-name" size="40">
<div class="label">Email</div>
<input name="E-mail" type="text" id="form-email" size="40">
<div class="label">Message</div>
<textarea name="Message" cols="55" rows="5" id="form-message"></textarea>
<div class="form-button">
    <button onclick='submitForm()'>Submit</button>
</div>

【问题讨论】:

    标签: javascript forms rest sharepoint sharepoint-2013


    【解决方案1】:

    你的代码有一个错误:

    我将To: toAddress 更改为To: { 'results': [toAddress] }

    现在一切正常,我也收到了电子邮件。

    var data = {
            properties: {
                __metadata: { 'type': 'SP.Utilities.EmailProperties' },
                From: fromAddress,
                To: { 'results': [toAddress] } ,
                Body: emBody,
                Subject: emSubject
            }
        }
    

    【讨论】:

      猜你喜欢
      • 2020-09-30
      • 2019-03-03
      • 2020-03-23
      • 1970-01-01
      • 2020-05-20
      • 1970-01-01
      • 2019-11-23
      • 1970-01-01
      • 2017-06-27
      相关资源
      最近更新 更多