Sendgrid-nodejs: 替代无效

创建于 2017-09-07  ·  17评论  ·  资料来源: sendgrid/sendgrid-nodejs

发行摘要

我从sendgrid 2.0.0迁移到@sendgrid/mail 6.1.2 ,替换不再起作用

重现步骤

SendgridService.prototype.sendTestEmail = function () {
  var text = 'Hi %DISPLAY_NAME%\n\n'
  const msg = {
    to: '[email protected]',
    subject: 'Test Email',
    from: {email: '[email protected]', name: 'Test'},
    text: text,
    substitutions: {
      "%DISPLAY_NAME%": 'Test'
    }
  }
  return sendgrid.send(msg)
}

技术细节:

  • sendgrid-nodejs版本:master(最新提交:[commit number])
  • Node.js版本:8.4.0
help wanted question

最有用的评论

@sydneyhenrard

为了帮助我们解决此问题,我们谨向您发送赃物,以表示感谢。

感谢您支持SendGrid!

最诚挚的问候,

埃尔默

所有17条评论

你好@sydneyhenrard

是一个完整的例子。

看来您需要设置substitutionWrappers 。 在您的情况下,这将是% 。 然后在substitutions对象中,将%字符留空。

最诚挚的问候,

埃尔默

是否有关于变量的约定?

SendgridService.prototype.sendTestEmail = function () {
  var text = 'Hi %DISPLAY_NAME% - %displayname%\n\n'
  const msg = {
    to: '[email protected]',
    subject: 'Test Email',
    from: {email: '[email protected]', name: 'Test'},
    text: text,
    substitutionWrappers: ['%', '%'],
    substitutions: {
      DISPLAY_NAME: 'Test',
      displayname: 'Test'
    }
  }
  return sendgrid.send(msg)
}

收到的电子邮件:

Hi %DISPLAY_NAME% – Test

你好@sydneyhenrard

我能够重现此问题。 我已将此添加到我们的待办事项列表中以进行修复。 看起来给定n个替换,替换0的设置不正确。

最诚挚的问候,

埃尔默

SDK的问题。 我不太确定到底是什么问题。 我计划检查有效负载以帮助进行故障排除。

如果我使用camelCase变量,即使替换为0也没有问题

谢谢@sydneyhenrard

那应该有助于更快地找到根本原因:)

我想我可能知道问题出在哪里,让我调查一下。

442应该解决这个问题

合并为v6.1.3,谢谢@adamreisnz!

@sydneyhenrard

为了帮助我们解决此问题,我们谨向您发送赃物,以表示感谢。

感谢您支持SendGrid!

最诚挚的问候,

埃尔默

在01/2018有相同的问题。 因为单字变量不起作用,所以将替换变量从%companyname%更改为%company_name%。 立即修复。

@greglbyv

您使用的是哪个版本的SDK? 谢谢!

最诚挚的问候,

埃尔默

使用设计生成的模板时,替代应该起作用吗? 只有当我手动构建模板时,我才能使它们工作,而使用设计工具构建的模板则永远无法工作。

@airstofather

为了帮助您,我将需要更多详细信息。 1)您指的是哪个模板? 2)您能提供示例代码吗? 模板HTML和Node.js代码。 谢谢!

另外,最好打开一个单独的问题。 谢谢!

最诚挚的问候,

埃尔默

@thinkingserious

请忽略我之前的评论。 在您回复之后,我重新看了一下它,这是插值变量中的多余空间,这引起了我第一次没有发现的问题。

一切都按照广告宣传进行。 谢谢。

@thinkingserious我已经尝试了一切,驼峰式,强调。 该变量仍然不会填充,当我通过sendgrid UI进行测试并传递该变量时,它可以正常工作。 它只是无法通过Firebase云功能工作。 这是我的代码

我正在使用“ @ sendgrid / mail”:“ ^ 6.3.1”

const msgbody = {
          to: userData.email,
          from: '[email protected]',
          subject: 'Registration Complete',
          templateId: 'd-dffc1e7c8a4a4ed5a4384eded1701f65',
          substitutionWrappers: ['{{', '}}'],
          substitutions: {
            first_name: userData.firstName
          }
        }
此页面是否有帮助?
0 / 5 - 0 等级

相关问题

Loriot-n picture Loriot-n  ·  4评论

wooyah picture wooyah  ·  4评论

prasoonjalan picture prasoonjalan  ·  3评论

polkhovsky picture polkhovsky  ·  3评论

thinkingserious picture thinkingserious  ·  4评论