【问题标题】:Mandrill Email with Variable from extra javascript带有来自额外 javascript 的变量的 Mandrill 电子邮件
【发布时间】:2016-06-21 01:43:33
【问题描述】:

我们正在尝试在下面使用 MANDRILL 发送的电子邮件中包含模态正文。我们如何将 modal-body 变量添加到电子邮件中,类似于名称、电子邮件和消息。 (我们正在使用 FullCalendar)非常感谢!

],
     eventClick: function(event) {
  console.log(event)
    // alert(event.start.format('MMMM Do YYYY'))
  var start = event.start.format('MMMM Do YYYY'),
    end = event.end.format('MMMM Do YYYY'),
    html = '<p>Starts: ' + start + '<p>';
  html += '<p>Ends: ' + end + '<p>';
  var modal = $("#modal");
  modal.find(".modal-title").html(event.title);
  modal.find('.modal-body').html(html)
  modal.modal();
    }
});
});
});//]]> 
jQuery(function($)  
{
$("#contact_form").submit(function()
{
var content = $("modal").text();
    var email = $("#email").val(); // get email field value
    var name = $("#name").val(); // get name field value
    var msg = $("#msg").val(); // get message field value
    $.ajax(
    {
        type: "POST",
        url: "https://mandrillapp.com/api/1.0/messages/send.json",
        data: {
            'key': 'API',
            'message': {
                'from_email': "email@email.com",
                'from_name': "name",
                'headers': {
                    'Reply-To': "email@emailcom"
                },
                'subject': 'Confirmation -  Sign Up',
                'text':   modal, 
                'to': [
                {
                    'email': email,
                    'name': name,
                    'type': 'to'
                }]

            }
        }
    })
    .done(function(response) {
        alert('You have been signed up. Thank you!'); // show success message
        $("#name").val(''); // reset field after successful submission
        $("#email").val(''); // reset field after successful submission
        $("#msg").val(''); // reset field after successful submission
       var content = $("modal").text();
            document.writeln(content);
    })
    .fail(function(response) {
        alert('Error sending message.');
    });

【问题讨论】:

    标签: javascript email fullcalendar mandrill


    【解决方案1】:

    您是否尝试直接从 javascript 发送 api 请求?如果是这样,您将向最终用户公开 Mandrill 您的 API 密钥,这一点都不好。

    这不是 IMO 的正确方法。使用用户数据向您的后端发送请求,然后您可以从您的后端发送 mandrill API 请求。

    【讨论】:

      【解决方案2】:

      查看this,它解释了如何使用 Mandrill 发送动态模板。

      您可以使用 Handlebars 添加动态内容。另一种方法是在 HTML 标记中使用mc:edit 属性将标记内容替换为您的动态内容。

      首先,您需要在 Mandrill 帐户上上传您的电子邮件模板。 添加带有mc:edit 属性的标签,如下所示:

      <span mc:edit="email">example@gmail.com</span>
      

      并在您的电子邮件中包含以下内容:

       "template_content": [
              {
                  "name": "email", //attribute value that you pass in your email template.
                  "content": "something@anything.com" //pass your dynamic email value here
              }
          ],
      

      Here 是示例 api 调用。

      对于您的情况:

       .....
              $.ajax(
                  {
                      type: "POST",
                      url: "https://mandrillapp.com/api/1.0/messages/send.json",
                      data: {
                          'key': 'API',
                           "template_content": [
                          {
                              "name": "email", //attribute value that you pass in your email template.
                              "content": "something@anything.com" //pass your dynamic email value here
                          },
                        ..... //You can pass multiple object similarly here 
                      ],
                          'message': {
                              'from_email': "email@email.com",
                              'from_name': "name",
                              'headers': {
                                  'Reply-To': "email@emailcom"
                              },
                              'subject': 'Confirmation -  Sign Up',
                              'text':   modal, 
                              'to': [
                              {
                                  'email': email,
                                  'name': name,
                                  'type': 'to'
                              }]
      
                          }
                      }
                  })
          .....
      

      希望对你有帮助..

      【讨论】:

      • 非常感谢您的回复!我一直在阅读车把。车把是否允许使用变量,就像我上面所说的那样?会 mc:edit 吗?或者我应该尝试使用合并标签?我们无法使用现有变量进行设置。
      • 您可以将.. Handlebars 或 Merge 标签用于动态内容。对于 Handlebars,请查看此内容。mandrill.zendesk.com/hc/en-us/articles/… 和 Merge 标签..mandrill.zendesk.com/hc/en-us/articles/… 两者都提供相同的功能。跨度>
      • 但与 mc:edit 作为标签属性不同,您必须在标签之间放置动态替换的变量..查看上述链接..
      猜你喜欢
      • 2014-12-28
      • 2014-03-21
      • 2011-10-20
      • 2014-01-28
      • 2016-01-17
      • 2023-04-11
      • 2014-07-30
      • 1970-01-01
      • 2015-12-11
      相关资源
      最近更新 更多