mc:编辑在使用Mandrill Javascript API的Mailchimp模板中不起作用

时间:2014-10-10 23:20:15

标签: javascript parse-platform mailchimp mandrill

我正在尝试使用Mailchimp模板通过Mandrill API发送电子邮件。我在Parse.com的云代码中执行此操作,请参阅此处https://www.parse.com/docs/cloud_modules_guide#mandrill。电子邮件发送得很好,但是,mc:edit字段永远不会更新。这是模板中唯一的内容:

<span mc:edit="ship_id">ship_id</span>

这就是我在Javascript中的调用,希望有人看到我的错误。我在Parse.com云代码中运行它,如果这有任何区别。非常感谢!

var Mandrill = require('mandrill');
Mandrill.initialize('api-key');

Mandrill.sendTemplate({
    template_name: "Drip campaign",
    template_content: [{
        name: "ship_id",
        content:"Test Test"

    }],

    message: {
      text: "Hi",
      subject: "You have new mail",
      from_email: "info@example.com",
      from_name: "Thomas",
      to: [
        {
          email: "answer@example.com",
          name: "Fred"
        }
      ],
      "headers": {
          "Reply-To": "answer@example.com"
      },
      "important": false,
      "track_opens": true,
      "track_clicks": true,

    },
    async: true
    },{
    success: function(httpResponse) {

      response.success("Email sent!");
    },
    error: function(httpResponse) {
      console.error(httpResponse);
      response.error("Uh oh, something went wrong");
    }
  });
}

2 个答案:

答案 0 :(得分:2)

据我所知,您希望在动态编辑邮件内容的同时发送电子邮件。您已经使用过,可以通过Mandrill API完成。我建议你使用链接中可下载的js文件;

https://github.com/jlainog/parse-mandrill-sendTemplate

从github帐户的js文件中,您可以使用标签mc:edit动态编辑邮件内容(必须在您的模板中)。

对于我的案例,工作副本的代码如下;

Parse.Cloud.define("sendMail", function(request, response) {
    var Mandrill = require('cloud/mandrillSend.js');

    var sentTo = //Mail address to sent
    var subject = //Mail Subject
    var fromEmail = //From email
    var fromName = //From Name
    var sentToName = //Parameters from request
    var fullName = //Full Name

    Mandrill.initialize('YOUR MANDRILL API KEY');
    Mandrill.sendTemplate({
        template_name: "MANDRIL TEMPLATE",
        template_content: [
        {
             name: "nameHeader",
             content: sentToName,
        },
         {
                name: "mail",
                content: sentTo,
        },
        ],
        "key": "YOUR MANDRILL API KEY",
        message: {
                subject: subject,
                from_email: fromEmail,
                from_name: fromName,
            to: [{
                email: sentTo,
                name: fullName
            }],
            important: true
        },
        async: false
    }, {
        success: function (httpResponse) {
            console.log(httpResponse);
            response.success("Email sent!");
        },
        error: function (httpResponse) {
            console.error(httpResponse);
            response.error("Uh oh, something went wrong");
        }
    });
});

例如,在Mandrdil模板中,有一个带有id;

的范围
<span mc:edit="mail"> test@gmail.com</span>

希望这会有所帮助。 问候。

答案 1 :(得分:1)

好的,所以我的代码没有任何问题,但似乎模板没有正确地从Mailchimp发送到Mandrill,因为为合并tages或mc添加 | NAME | 等字段:编辑=&#34;名称&#34;只是没有填充。至少Mailchimp模板的代码非常奇怪且非常嵌套。

出于这个原因,我建议您在此处使用自己的HTML,您可以在其中输入合并视频或mc:edits https://mandrillapp.com/templates/