【问题标题】:Sendgrid Dynamic Template Stripping HREF from Anchor tagsSendgrid 动态模板从 Anchor 标记中剥离 HREF
【发布时间】:2020-01-07 17:24:26
【问题描述】:

我有一个动态电子邮件模板,用于向用户发送唯一令牌链接以重置其密码。我将链接分配给我的请求对象中我的个性化的 dynamic_template_data 部分中名为“链接”的字段。当我收到邮件时,我的锚标签没有 href 属性。

这是我的请求对象:

{
        method: "POST",
        url: "/v3/mail/send",
        headers: {
          "content-type": "application/json"
        },
        body: {
          personalizations: [
            {
              to: [{ email: email, name: name }],
              dynamic_template_data: {
                link: link
              }
            }
          ],
          // some other content
          // ...
          template_id: Constants.EMAIL.RESET_PASSWORD
        },
        json: true
      }

还有我的 sendgrid 动态模板中的 html:

<div>Use the following link to reset your password: <a href="{{link}}">{{link}}</a></div>

当我收到电子邮件时,链接的文本已正确填充我的动态内容,但该元素没有 href 属性,因此它呈现为纯文本且不可点击:

特别奇怪的是,当我在 SendGrid 的设计编辑器上预览我的动态模板时,href 字段正确地填充了我传入的测试数据。

【问题讨论】:

    标签: javascript html sendgrid sendgrid-api-v3 sendgrid-templates


    【解决方案1】:

    在反复使用 SendGrid 支持后,我设法找到了问题。

    因为我一直在本地环境中开发此功能,所以我在请求正文中包含的链接指向我的本地主机。我的链接变量定义如下:

      link = "localhost:8080/#/resetPassword/" + token;
    

    作为测试,我将链接更改为以下内容,并且有效:

    link = "https://google.com"
    

    这让我怀疑是缺少 http 协议导致了问题。将其更改为以下解决了该问题:

      link = "http://localhost:8080/#/resetPassword/" + token;
    

    我假设这是锚标记元素本身的一个怪癖,虽然我不太了解这种机制,所以如果有人可以为我详细说明,我将不胜感激。

    【讨论】:

      【解决方案2】:

      编辑模块html代码时可以使用字符串插值

      <a href=`{{shipperLoadUrl}}`>portal</a>
      

      【讨论】:

        猜你喜欢
        • 2017-03-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多