Sendgrid-nodejs: 主题在模板mail.send()中未更改

创建于 2018-08-01  ·  26评论  ·  资料来源: sendgrid/sendgrid-nodejs

发行摘要

电子邮件中的主题未更改

重现步骤

致电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版本:
    "@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"
      }
    },
  • Node.js版本:8.11.1
unknown or a hacktoberfest help wanted bug

最有用的评论

应该是这样的:
“ dynamic_template_data”:{
“ subject”:“您的主题”,
},

转到https://sendgrid.com/dynamic_templates
并在“模板设置”中添加{{{subject}}}。

它对我有用:+1:

所有26条评论

我正在使用的解决方法是在诸如{{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来完成的。 然后在您的代码中引用该值。

image

@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的内部工作原理,但这可能就是为什么存在问题(需要时间传播到第二个节点吗?)。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

0x80 picture 0x80  ·  19评论

thinkingserious picture thinkingserious  ·  30评论

francesco-clementi picture francesco-clementi  ·  26评论

r3wt picture r3wt  ·  17评论

10kc-zack picture 10kc-zack  ·  19评论