Как использовать переменную Mailgun в шаблоне письма? - PullRequest
0 голосов
/ 08 мая 2020

Я использую Mailgun API с nodejs + express для отправки писем. Я хочу перейти на использование шаблонов вместо того, чтобы писать все письмо как тег HTML в nodejs.

В документации Mailgun показано, как отправлять переменные в шаблон, но не как использовать их внутри шаблона .

Вот как я отправляю запрос Mailgun

    const data = {
    from: "Shared Video <Share@website-template.com>",
    to: shareTo,
    subject: subject,
    template: "share_video",
    v: (subject = subject),
    v: (shareToName = shareToName),
    v: (userName = userName),
    v: (videoTitle = videoTitle),
    v: (videoID = videoID),
};
mailgun.messages().send(data, function (error, body) {
    console.log(body);
    req.flash("success", "Video Shared");
    res.redirect("/");
});

Итак, как я могу использовать эти переменные в шаблоне электронной почты?

1 Ответ

0 голосов
/ 12 июня 2020

Согласно Документация по шаблону Mailgun вы можете передавать данные шаблона, используя любой из 2 вариантов, представленных ниже,

Вариант 1

const data = {
  from: "Shared Video <Share@website-template.com>",
  to: shareTo,
  subject: subject,
  template: "share_video",
  'h:X-Mailgun-Variables': JSON.stringify({
    subject: subject,
    shareToName: shareToName,
    userName: userName,
    videoTitle: videoTitle,
    videoID: videoID
  })
};

Вариант 2

const data = {
  from: "Shared Video <Share@website-template.com>",
  to: shareTo,
  subject: subject,
  template: "share_video",
  'v:subject': subject,
  'v:shareToName': shareToName,
  'v:userName': userName,
  'v:videoTitle': videoTitle,
  'v:videoID': videoID,
};

Наконец, согласно их документации

Второй способ ( Вариант 2 в нашем случае) - не рекомендуется, так как ограничивается простыми данными значения ключа. Если у вас есть массивы, словари в значениях или сложные json данные, вам необходимо указать переменные через заголовок X-Mailgun-Variables.

...