Используя модуль узла sendgrid, как мне отправить электронное письмо с помощью механизма шаблонов SendGrid?

Я создал шаблон электронной почты «Спасибо за подписку» с помощью механизма шаблонов SendGrid.

Теперь, когда кто-то подписывается на мой сайт, я хочу отправить этому человеку этот шаблон. Могу ли я сделать это с помощью пакета sendgrid-nodejs?

Я не вижу ничего по этому поводу в документах.


person k00k    schedule 13.03.2015    source источник


Ответы (3)


Да, это очень просто, вам просто нужно добавить его в качестве фильтра. Вот как это должно выглядеть:

var cardEmail = new sendgrid.Email({
  to: "[email protected]",
  from: "[email protected]",
  subject: process.env.SUBJECT,
  html: '<h2>Thanks for requesting a business card!</h2>', // This fills out the <%body%> tag inside your SendGrid template
});

// Tell SendGrid which template to use, and what to substitute. You can use as many substitutions as you want.
cardEmail.setFilters({"templates": {"settings": {"enabled": 1, "template_id": "325ae5e7-69dd-4b95-b003-b0109f750cfa"}}}); // Just replace this with the ID of the template you want to use
cardEmail.addSubstitution('-greeting-', "Happy Friday!"); // You don't need to have a substitution, but if you want it, here's how you do that :)

// Everything is set up, let's send the email!
sendgrid.send(cardEmail, function(err, json){
  if (err) {
    console.log(err);
  } else {
    console.log('Email sent!');
  }
});

Я надеюсь, что это поможет вам. Если вам нужно больше информации об этом, ознакомьтесь с сообщением в блоге, которое я написал о используя Template Engine с sendgrid-nodejs.

person Martyn Davies    schedule 13.03.2015
comment
Что такое замещение? как теги с Mandrill? :) - person jdnichollsc; 27.04.2016

Чтобы заставить его работать с версией 4.x.x, используйте это:

var helper = require('sendgrid').mail;
var from_email = new helper.Email('[email protected]');
var to_email = new helper.Email('[email protected]');
var subject = 'I\'m replacing the subject tag';
var content = new helper.Content('text/html', 'I\'m replacing the <strong>body tag</strong>');
var mail = new helper.Mail(from_email, subject, to_email, content);
mail.personalizations[0].addSubstitution(new helper.Substitution('-name-', 'Example User'));
mail.personalizations[0].addSubstitution(new helper.Substitution('-city-', 'Denver'));
mail.setTemplateId('13b8f94f-bcae-4ec6-b752-70d6cb59f932');

Полный пример

person Krzysztof Kaczor    schedule 01.02.2017

Похоже, вам нужно использовать методы приложений (фильтров) SMTPAPI для отправки шаблонов. Я не верю, что он еще поддерживается веб-API. Вот некоторые документы:

https://sendgrid.com/docs/API_Reference/SMTP_API/apps.html#templates

person k00k    schedule 13.03.2015
comment
Вызов шаблона можно выполнить только в аргументе x-smtpapi, но этот аргумент можно указать в вызов webapi - person jacobmovingfwd; 16.03.2015