mc:edit не работает в шаблоне Mailchimp с API Mandrill Javascript

Я пытаюсь отправлять электронные письма через API Mandrill с шаблонами Mailchimp. Я делаю это в облачном коде с 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: "[email protected]",
      from_name: "Thomas",
      to: [
        {
          email: "[email protected]",
          name: "Fred"
        }
      ],
      "headers": {
          "Reply-To": "[email protected]"
      },
      "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");
    }
  });
}

person Marius Hilarious    schedule 10.10.2014    source источник
comment
Дорогой Мариус; Я думаю, что sendTemplate находится в другом файле js, и я не вижу импорта (требования) этого файла js. Можете ли вы проверить это, пожалуйста?   -  person kingspeech    schedule 11.10.2014
comment
Можете ли вы проверить предыдущий комментарий? Если это не решит вашу проблему, я могу предоставить несколько кодов, где вы можете обновить поля mc:edit. С уважением.   -  person kingspeech    schedule 11.10.2014
comment
Привет, kingspeech, на самом деле я использую Parse API, поэтому я соответствующим образом обновил свой вопрос.   -  person Marius Hilarious    schedule 11.10.2014


Ответы (2)


Итак, в моем коде нет ничего плохого, но похоже, что шаблоны не отправляются должным образом из Mailchimp в Mandrill при добавлении таких полей, как |NAME| для тегов слияния или mc:edit="name "просто не были заселены. По крайней мере, код шаблона Mailchimp довольно странный и очень вложенный.

По этой причине я бы рекомендовал использовать здесь ваш собственный HTML, где вы вводите теги слияния или mc:edits https://mandrillapp.com/templates/.

person Marius Hilarious    schedule 12.10.2014
comment
Уважаемый Мариус, извините за поздний ответ. Я обновляю свои ответы на случай, если кому-то понадобится снова. Надеюсь, вы решите свою проблему. С уважением. - person kingspeech; 12.10.2014

Насколько я понимаю из вашего вопроса, вы хотите отправлять электронную почту, в то же время вы хотите динамически редактировать содержимое почты. Как вы уже использовали, вы можете сделать это через API Mandrill. Я предлагаю вам использовать файлы js, которые можно загрузить по ссылке;

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

Из файла js в учетной записи github вы можете динамически редактировать содержимое почты (должно быть в вашем шаблоне) с помощью тега 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 есть диапазон с идентификатором;

<span mc:edit="mail"> [email protected]</span>

Надеюсь это поможет. С уважением.

person kingspeech    schedule 11.10.2014
comment
Дорогой Мариус, я использую js-файлы шаблона отправки mandrill для отправки почты, когда новый пользователь регистрируется в системе. Если вы не можете решить проблему, пожалуйста, сообщите мне, чтобы я мог предоставить некоторые коды. С уважением. - person kingspeech; 11.10.2014
comment
спасибо, родная речь, я попробую это. Однако откуда берется этот код. Мне просто интересно, почему невозможно заставить его работать так, как это описано в Parse API, но его нужно использовать с функциями экспорта и всем остальным. - person Marius Hilarious; 12.10.2014
comment
Уважаемый Мариус, Как и вы, в одном из проектов мне нужно отправить электронное письмо, когда новый пользователь зарегистрируется в системе. Я иду по учебнику Parse, но мне не удается отправить электронное письмо с динамически изменяемым полем. Затем я просматриваю блоги Parse, и одна из записей в блоге указывает на ссылку mandrill-sendTemplate. Затем мне удается отправить электронное письмо. Поэтому я хочу поделиться с вами. Надеюсь, вы сможете решить свою проблему. Если вы не можете, сообщите мне, чтобы я мог поделиться с вами кодами. С уважением. - person kingspeech; 12.10.2014
comment
эй кингспич, это все еще не работает. Электронные письма отправляются нормально, однако поля mc: edit никогда не меняются. Есть идеи, что мне теперь делать? - person Marius Hilarious; 12.10.2014
comment
возможно, нужно что-то сделать с комментарием в строке 9 main.js // Они необходимы, но игнорируются? - person Marius Hilarious; 12.10.2014