我从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)
}
你好@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 ,
那应该有助于更快地找到根本原因:)
我想我可能知道问题出在哪里,让我调查一下。
合并为v6.1.3,谢谢@adamreisnz!
在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
}
}
最有用的评论
@sydneyhenrard ,
为了帮助我们解决此问题,我们谨向您发送赃物,以表示感谢。
感谢您支持SendGrid!
最诚挚的问候,
埃尔默