Sendgrid:如何在电子邮件模板中添加动态链接?

14

我试图在我的电子邮件模板中添加一个链接,它看起来有点像这样:

<a href={{url}}>click here</>

在"设计师"中添加一个"自定义"链接,将上面的链接添加进去。我输入的这个链接的值是{{url}}。

我在dynamic_template_data中传递了一个url值,就像这样:

const msg = {
  to: savedAdmin.email,
  from: process.env.EMAIL_ADDRESS,
  templateId: process.env.SENDGRID_NEW_ADMIN_TEMPLATE_ID,
  personalizations: [
    {
      to: [{email: savedAdmin.email}],
      dynamic_template_data: {
        name: savedAdmin.first_name,
        url: process.env.CMS_URL,
        email: savedAdmin.email,
        password: randomPassword,
      },
    },
  ],
};

但是,当我在收件箱中收到邮件时,URL就会呈现为下面这样:

http://url9905.myweb.shop/ls/click?upn=BMmHdsRoNrbb0-2FMI-2BBVvCjpDiCceHLG5U2u5OCf29QV6iCtfuvZYId1FE95cTz9uyMY31z9fQ7iR-2BPgq-2FkquvxdAPC0oMKiLa3DRglYUSVP-2FRmYbDQ-2BdFGnczXk75K3Ym8rSodsrAy-2BfNDJwqA7RDeemPFjepjRsUdci9CA6Y0-....

我该怎么让这个工作起来?


1
你是在使用他们的测试数据页面吗?还是这段代码正在与NodeJS一起使用。请提供更多上下文,以便我可以尝试复制该问题。 - Farnoosh
1
我注意到他们的消息示例对象包含一个用于HTML的键字段。尝试在那里粘贴<a>标签,看看最终效果如何。说实话,我自己也尝试过这样做,但由于我没有付费电子邮件域,他们无法验证我的雅虎/ Gmail(他们在网站上说这是不可能的),因此我无法在我的端上复制该问题。 - Farnoosh
1
我使用的示例直接来自NPM页面https://www.npmjs.com/package/@sendgrid/mail。 - Farnoosh
1
另外,我提出这个问题只是为了覆盖所有可能性,你确定你的收件箱没有设置为纯文本格式吗?因为这会导致你看到一个链接作为地址。 - Farnoosh
1
我正在阅读他们网页上的材料,上面写道如果你的变量包含 ' 或 ",你必须使用三个大括号格式 {{{variable}}}。你试过这样做看看是否有所不同吗? - Farnoosh
显示剩余5条评论
2个回答

18

Sendgrid正在使用中间重定向替换您的链接以进行点击跟踪。这位用户遇到了同样的问题。从Sendgrid仪表板,转到设置->跟踪,并单击右侧的编辑图标以进行点击跟踪,然后禁用该功能。


太棒了!这正是我在寻找的。非常感谢! - xfscrypt
很高兴能帮助到你 :) - emporerblk
如果您仍然希望使用点击跟踪,请确保使用https而不是http,这样它将起作用。 - Broshi

4

看起来这个问题的原因是由于链接没有包含http/s前缀所致。请将您的动态变量从"cms.mywebshop.com"更改为"http://cms.mywebshop.com"或"https://cms.mywebshop.com"。我相信这应该可以解决您的问题。请让我知道。

我测试了一个href没有http/s前缀,虽然标签没有显示为纯文本,但确实无法转发。Sendgrid的人可能会将链接显示为纯文本以进行故障排除。


谢谢Farnoosh。虽然emporerblk提供了解决方案,但我也会研究一下!感谢您的支持。 - xfscrypt
1
我更喜欢这个答案,因为如果你想要保持跟踪打开,你可以在SendGrid中使用它,并且链接在被重定向后仍然有效。 - Lyle Bennett

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接