Sendgrid 中的替换令牌列表

Posted

技术标签:

【中文标题】Sendgrid 中的替换令牌列表【英文标题】:List of Substitution Tokens in Sendgrid 【发布时间】:2016-02-27 11:48:52 【问题描述】:

我正在向单个用户发送一封交易电子邮件,并希望在电子邮件中嵌入项目列表。我可以使用 Node.js 中的 NPM 包“sendgrid”添加单个替换值 - https://github.com/sendgrid/sendgrid-nodejs:

email.addFilter('templates', 'enable', 1);
email.addFilter('templates', 'template_id', '11122233445....');
email.addSubstitution('TOKEN1', 'My Token1 Replacement');

但我看不到如何将项目列表添加到 sendgrid 中的模板。使用 Mandrill 我可以使用 Handlebars 并执行以下操作。名单:

items: [
    name: "one", url: "/one",
    name: "two", url: "/two",
];

在模板中:

<ul>
    #each ITEMS
    <li>
        name - <a href="url">Blah</a>
    </li>
    /each
</ul>

然后在代码中:

var rcpt =  "rcpt": email, 
    "vars": [
         "name":"ITEMS", "content": items 
    ]
;
mergeVars.push(rcpt);
var message =  ...
    "merge_vars": mergeVars,

mandrillClient.messages.sendTemplate(... "message": message );

导致:

<ul>
    <li>one <a href="/one">Blah</a></li>
    <li>two <a href="/two">Blah</a></li>
</ul>

有没有办法在 Sendgrid 中做到这一点?

【问题讨论】:

【参考方案1】:

SendGrid 在模板中没有 each 逻辑。

最好的解决方法是在模板中:

<ul>
  item1
  item2
  item3
</ul>

然后在您的替换中,您将根据具体情况填充适当的&lt;li&gt; item 1 details&lt;/li&gt; 或NULL。确保您的模板具有与您的最大列表大小一样多的替换标签,并且这些项目的默认值为 NULL,以便即使没有项目也可以填充它们。

【讨论】:

以上是关于Sendgrid 中的替换令牌列表的主要内容,如果未能解决你的问题,请参考以下文章

SendGrid 电子邮件作为垃圾邮件被拒绝

发送大量邮件而不发疯(SendGrid?云?)[关闭]

Sendgrid - SMTP 还是 CURL?

SendGrid事务模板自定义参数c#

SendGrid 无法发送电子邮件、firebase 功能。 (代码:403)

将 SendGrid SMTP 集成用于批量电子邮件