如何在电子邮件模板中使用Mailgun变量?

问题描述 投票:0回答:1

我正在将Mailgun API与nodejs + express一起使用来发送电子邮件。我想过渡到使用模板,而不是将整个电子邮件作为HTML标记写入nodejs。

Mailgun文档显示了如何将变量发送到模板,但没有如何在模板内部使用它们。

这是我发送Mailgun请求的方式

    const data = {
    from: "Shared Video <[email protected]>",
    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("/");
});

那么,如何在电子邮件模板中使用这些变量?

node.js express mailgun
1个回答
0
投票

根据Mailgun Template Documentation,您可以使用下面提供的2个选项中的任何一个来传递模板数据,

选项1

const data = {
  from: "Shared Video <[email protected]>",
  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 <[email protected]>",
  to: shareTo,
  subject: subject,
  template: "share_video",
  'v:subject': subject,
  'v:shareToName': shareToName,
  'v:userName': userName,
  'v:videoTitle': videoTitle,
  'v:videoID': videoID,
};

最后,根据他们的文档

第二种方式(在我们的情况下为Option 2)不建议使用,因为它仅限于简单键值 数据。如果您有数组,值中的字典或复杂的json数据 您必须通过X-Mailgun-Variables标头提供变量。

© www.soinside.com 2019 - 2024. All rights reserved.