电子邮件中的主题未更改
致电sgMail.send(请参见Bellow)
const seeBellow = {
"from": "[email protected]",
"templateId": "d-1da76d64a1bd4c8b87c035ccaa3f6cfb",
"dynamicTemplateData": {
"username": "[email protected]",
"giftcardAmount": "$45",
"validUntil": "Aug 2019",
"receiptNumber": 111299,
"ewayTransactionId": "00003100003509951fac7d25e8dd96e0"
},
"personalizations": [
{
"to": "[email protected]",
"subject": "Somebody has sent you a Gift Card"
}
],
"isMultiple": false,
"substitutionWrappers": [
"{{",
"}}"
]
}
这导致以下帖子
{
"method": "POST",
"url": "/v3/mail/send",
"body": {
"from": {
"email": "[email protected]"
},
"personalizations": [
{
"to": [
{
"email": "[email protected]"
}
],
"subject": "Somebody has sent you a Gift Card",
"dynamic_template_data": {
"username": "[email protected]",
"giftcardAmount": "$45",
"validUntil": "Aug 2019",
"receiptNumber": 111299,
"ewayTransactionId": "00003100003509951fac7d25e8dd96e0"
}
}
],
"template_id": "d-1da76d64a1bd4c8b87c035ccaa3f6cfb"
}
}
我也尝试过通过一系列消息发送2封电子邮件,而不是使用个性化设置,但这还是行不通的。
最后,我也尝试将主题放置在from字段旁边,但还是没有用
"@sendgrid/mail": {
"version": "6.3.1",
"resolved": "https://registry.npmjs.org/@sendgrid/mail/-/mail-6.3.1.tgz",
"integrity": "sha512-5zIeAV9iU+0hQkrOQ/D4RB2MfpK+lNbOortIfQdCh95aMDF/TRc9WB8FGNhmQrx9YMuJTms5eiBklF0Fi/dbVg==",
"requires": {
"@sendgrid/client": "6.3.0",
"@sendgrid/helpers": "6.3.0"
}
},
我正在使用的解决方法是在诸如{{subject}}之类的SendGrid的Web界面中添加一个主题,然后将一个主题变量传递给dynamic_template_data
。 看起来模板变量在主题中起作用,因此您基本上可以通过编程方式以这种方式传递整个主题。
你好@falconmick ,
@ wbw20解决方法
@ wbw20 ,
感谢您的帮助! 我编辑了您的图像,因为它没有添加到解决方案中。 不确定您的意图是什么。
最诚挚的问候,
埃尔默
FWIW,我在Ruby lib中看到类似的行为。
在电子邮件对象上设置主题不会覆盖Web工具上模板上定义的任何内容。 必须使其成为把手,并添加到每个个性化设置中。
我也遇到这个问题。 我正在努力确切指出失败的原因。
解决方法似乎可行,但是很不幸,因为它与我们为所有其他SendGrid电子邮件设置的设置背道而驰。
应该是这样的:
“ dynamic_template_data”:{
“ subject”:“您的主题”,
},
转到https://sendgrid.com/dynamic_templates
并在“模板设置”中添加{{{subject}}}。
它对我有用:+1:
@atarabbi的解决方案应该是您所需要的。 如果仍然遇到问题,请继续对此线程发表评论。 谢谢!
@atarabbi的解决方案应该是您所需要的。 如果仍然遇到问题,请继续对此线程发表评论。 谢谢!
但是,这是否仍然会导致库最终无法按照文档库API记录的方式供我们使用? 如果情况允许,将主题设置为似乎还行吗?
是的,文档建议的更改主题的方法似乎无效。 我不知道这是否仅是dynamic_template_data的问题,但我也遇到了这种情况。
我将尝试为主题行使用动态模板,但文档出乎意料地不一致
根据我在此处的文档中看到的内容,记录了使用handlebars变量更新模板主题(当然,这可能是一个更广泛的解释)。 @baugarten只是为了确保您在说那对您不起作用? 您能指出我们指向错误的方向吗?
我看到我们没有在客户端软件包中记录dynamic_template_data 。
另外,您是否正在使用最新的库版本v6.3.1?
绝对要解决此问题,对于造成的困扰,我们深表歉意!
FWIW我还在Golang库中看到了这个问题,我无法从API调用中覆盖模板主题。 如果找不到合适的解决方法,我也会在其中提出问题。
gh,文档特别指出,基础主题将被个性化主题覆盖,这与能够模板化主题完全不同。
编辑:尤其是当您自己的库不起作用时。 他们以个性化方式添加主题,而该主题不能用作模板。 如果您希望这是已记录的行为,则库需要将其添加到dynamic_template_data子对象。
也碰到了这一点,主题似乎没有被覆盖,但是解决方法是可用的。
实际上,将主题留在“ dynamic_template_data”中并在模板中使用{{{subject}}}对其进行引用确实确实可行。 另外我注意到的是custom_args不再存在。 它与替换合并为“ dynamic_template_data”。 不幸的是,文档没有告诉你。 例如,如果要传递语言参数,请在“ dynamic_template_data”中执行此操作。
“ dynamic_template_data”字段有效,但似乎未记录在案: https :
这仍然是一个问题。 为什么关闭了?
解决方法无法正常工作。 如果我使用相同的主题在循环中发送约30封电子邮件,我会收到一些与我发送的主题相同的邮件,而有些电子邮件则包含(无主题)。
当前是否可以通过API可靠地发送自定义主题?
@ deepai-org最好在此处使用最新文档: https ://sendgrid.com/docs/API_Reference/api_v3.html
@vladkosarev您是在说使用相同的动态模板,将主题模板
@ childish-sambino不久之后,所有电子邮件中的主题实际上都是正确的。 似乎有一段时间异步发生了,有些电子邮件将获得旧的电子邮件模板,而另一些将获得新的电子邮件模板。
这是https://sendgrid.com/docs/API_Reference/api_v3.html正确的文档吗? 我很确定该文档中所述的发送主题无效。 到目前为止,它起作用的唯一方法是此票证中描述的解决方法。
@vladkosarev这些是正确的文档。 如果您使用的是动态模板,则必须对该主题进行模板化并将其作为动态模板数据进行传递,以便按电子邮件方式对其进行修改(如本期概述)。 如果您不使用模板,则将使用邮件发送有效载荷中提供的主题。
至于为什么需要一些同步才能使主题对所有电子邮件都是正确的,最好与支持人员联系。
@ childish-sambino您能指出我在文档中说明如何在动态模板中使用主题的地方吗? 我仍然找不到该新链接中的任何地方。 谢谢!
如果我没记错@vladkosarev ,则想在模板本身中为主题设置车把值-这是使用模板GUI来完成的。 然后在您的代码中引用该值。
@aroach谢谢,但是我有兴趣在文档中看到它,而不是在github上发表评论。 顺便说一下,{{}}在我尝试时对我不起作用,只有三括号{{{}}}有效(可能和以前一样是异步问题)。
@vladkosarev似乎在这里被提及: https : //sendgrid.com/docs/ui/sending-email/how-to-send-an-email-with-dynamic-transactional-templates/
此工具栏模板可在模板的文本,html和主题行中使用。
@aroach谢谢。 我只是做了更多的测试,主体花了一段时间才能真正“应用”到模板,所以如果您正在测试(编辑模板/发送),它似乎无法正常工作。 如果您等待10分钟,则实际上确实可以应用,并且可以按预期工作。 我可能会联系SG,以证明模板更新不是实时的(至少对于主题而言),并且您需要稍等片刻才能进行测试。 谢谢。
@Whatthefoxsays应该能够追踪和/或进行适当的编辑。 👋
@aroach我可能要提到的一件事是,我们确实有两个用于发送电子邮件的IP。 我不知道SG的内部工作原理,但这可能就是为什么存在问题(需要时间传播到第二个节点吗?)。
最有用的评论
应该是这样的:
“ dynamic_template_data”:{
“ subject”:“您的主题”,
},
转到https://sendgrid.com/dynamic_templates
并在“模板设置”中添加{{{subject}}}。
它对我有用:+1: