Sendgrid 动态模板从锚标签中剥离 HREF
Sendgrid Dynamic Template Stripping HREF from Anchor tags
我有一个动态电子邮件模板,用于向用户发送一个唯一令牌 link 以重置他们的密码。我将 link 分配给请求对象中个性化设置的 dynamic_template_data 部分中名为 'link' 的字段。当我收到邮件时,我的锚标签没有 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>
当我收到电子邮件时,link 的文本已正确填充了我的动态内容,但该元素没有 href 属性,因此它呈现为纯文本且不可点击:
特别奇怪的是,当我在 SendGrid 的设计编辑器中预览我的动态模板时,href 字段正确地填充了我传入的测试数据。
在与 SendGrid 支持反复讨论后,我设法找到了问题。
因为我一直在本地环境中开发此功能,所以我在请求正文中包含的 link 指向我的本地主机。我的 link 变量定义如下:
link = "localhost:8080/#/resetPassword/" + token;
作为测试,我将 link 更改为以下内容并且有效:
link = "https://google.com"
这让我怀疑是缺少 http 协议导致了这个问题。将其更改为以下修复了问题:
link = "http://localhost:8080/#/resetPassword/" + token;
我假设这是锚标记元素本身的一个怪癖,尽管我不太了解该机制,所以如果有人能为我详细说明,我将不胜感激。
编辑模块html代码时可以使用字符串插值
<a href=`{{shipperLoadUrl}}`>portal</a>
我有一个动态电子邮件模板,用于向用户发送一个唯一令牌 link 以重置他们的密码。我将 link 分配给请求对象中个性化设置的 dynamic_template_data 部分中名为 'link' 的字段。当我收到邮件时,我的锚标签没有 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>
当我收到电子邮件时,link 的文本已正确填充了我的动态内容,但该元素没有 href 属性,因此它呈现为纯文本且不可点击:
特别奇怪的是,当我在 SendGrid 的设计编辑器中预览我的动态模板时,href 字段正确地填充了我传入的测试数据。
在与 SendGrid 支持反复讨论后,我设法找到了问题。
因为我一直在本地环境中开发此功能,所以我在请求正文中包含的 link 指向我的本地主机。我的 link 变量定义如下:
link = "localhost:8080/#/resetPassword/" + token;
作为测试,我将 link 更改为以下内容并且有效:
link = "https://google.com"
这让我怀疑是缺少 http 协议导致了这个问题。将其更改为以下修复了问题:
link = "http://localhost:8080/#/resetPassword/" + token;
我假设这是锚标记元素本身的一个怪癖,尽管我不太了解该机制,所以如果有人能为我详细说明,我将不胜感激。
编辑模块html代码时可以使用字符串插值
<a href=`{{shipperLoadUrl}}`>portal</a>