通过 sendgrid/mail 发送时如何向我的电子邮件添加退订链接
How can I add unsubscribe links to my emails when sending via sendgrid/mail
我正在使用以下方式发送电子邮件:https://github.com/sendgrid/sendgrid-nodejs/tree/master/packages/mail
我无法找到如何添加 <a href="[Unsubscribe]">Unsubscribe</a>
等价物。这记录在此处:https://sendgrid.com/docs/Classroom/Basics/Marketing_Campaigns/unsubscribe_groups.html#-Using-a-Custom-Unsubscribe-Link
在网站上,您只需使用简码 [取消订阅],这在通过 sendgrid/mail 包发送电子邮件时不起作用。
由于您是使用代码发送的,因此它是 "transactional" 类型的消息。您需要在帐户级别打开订阅跟踪过滤器(通过 [UI](订阅跟踪设置)或 API), or turn it on as you send the message, as part of the mail/send API call,在 tracking_settings
.
下
请务必注意,您不能将它们混用。如果您在 mail/send
API 调用中定义 anything,则需要为订阅跟踪定义 everything称呼。 SendGrid 不会查看邮件级别的一些设置,以及帐户级别的一些设置。
大多数用户只会在帐户级别进行设置。在那里,您可以自定义取消订阅页脚的 HTML 和文本,自定义登录页面的 HTML,或将登录重定向到您选择的 URL,这会将收件人发送到那里在 URL 字符串中使用 ?email=test@domain.com
供您的系统捕获。您还可以像 [%unsubscribe%]
一样定义 "replacement tag",这样您就可以将 URL 放置在 HTML.
中的任意位置
最简单的方法是通过 SendGrid GUI 执行此操作。
转到设置 -> 跟踪 -> 订阅跟踪
一个可以节省我一两个小时的提示是:
可以在 api json 中连同其他内容一起发送以下内容:
"asm":{
"group_id":123,
"groups_to_display": [123],
}
然后以下变量可在模板中使用:
<%asm_group_unsubscribe_raw_url%>
<%asm_preferences_raw_url%>
如果您想保持简单,请不要包含以下变量,因为它会弄乱太多东西(这在 documentation 中并不明显,所以显然我这样做是浪费时间:( ) :
"tracking_settings": {
"subscription_tracking": {
"enable": true,
"substitution_tag": "[unsubscribe_url]"
}
}
只需以原始格式使用它们就可以了。
最好的方法是使用群组取消订阅。
- 首先在Sendgrid中创建一个组:
- 群组 > 取消订阅群组 > 创建群组
- 接下来,将模块插入到 Sendgrid 模板中,在您的电子邮件中创建特定标签,这些标签会在您发出 API 请求时填充
- 转到您的模板
- 在 HTML 块中插入取消订阅模块
- 保存
- 最后提出API请求并指定在步骤1中创建的组:
"asm":{
"group_id":544,
"groups_to_display": [544, 788],
}
- 这些将在发送电子邮件时插入到步骤 2 中提到的模块中。
不幸的是,Sendgrid 退订链接并不像它们应该的那样简单。它们有更详细的解释 here
https://app.sendgrid.com/ > 抑制 > 退订群组 > 创建新群组
记下 group_id/ids。例如 123(只有数字!不是字符串)
使用 node.js
发送电子邮件
const sgMail = require('@sendgrid/mail');
sgMail.setApiKey(SENDGRID_API_KEY);
const tags = { invitedBy : Alex }
const msg = {
to: email,
from: { "email": SENDER_EMAIL,
"name": SENDER_NAME
},
templateId: TEMPLATE_ID,
dynamic_template_data: {
Sender_Name: name,
...tags
},
asm: {
group_id: 123,
groups_to_display: [
123
],
},
};
await sgMail.send(msg);
我正在使用以下方式发送电子邮件:https://github.com/sendgrid/sendgrid-nodejs/tree/master/packages/mail
我无法找到如何添加 <a href="[Unsubscribe]">Unsubscribe</a>
等价物。这记录在此处:https://sendgrid.com/docs/Classroom/Basics/Marketing_Campaigns/unsubscribe_groups.html#-Using-a-Custom-Unsubscribe-Link
在网站上,您只需使用简码 [取消订阅],这在通过 sendgrid/mail 包发送电子邮件时不起作用。
由于您是使用代码发送的,因此它是 "transactional" 类型的消息。您需要在帐户级别打开订阅跟踪过滤器(通过 [UI](订阅跟踪设置)或 API), or turn it on as you send the message, as part of the mail/send API call,在 tracking_settings
.
请务必注意,您不能将它们混用。如果您在 mail/send
API 调用中定义 anything,则需要为订阅跟踪定义 everything称呼。 SendGrid 不会查看邮件级别的一些设置,以及帐户级别的一些设置。
大多数用户只会在帐户级别进行设置。在那里,您可以自定义取消订阅页脚的 HTML 和文本,自定义登录页面的 HTML,或将登录重定向到您选择的 URL,这会将收件人发送到那里在 URL 字符串中使用 ?email=test@domain.com
供您的系统捕获。您还可以像 [%unsubscribe%]
一样定义 "replacement tag",这样您就可以将 URL 放置在 HTML.
最简单的方法是通过 SendGrid GUI 执行此操作。
转到设置 -> 跟踪 -> 订阅跟踪
一个可以节省我一两个小时的提示是:
可以在 api json 中连同其他内容一起发送以下内容:
"asm":{
"group_id":123,
"groups_to_display": [123],
}
然后以下变量可在模板中使用:
<%asm_group_unsubscribe_raw_url%>
<%asm_preferences_raw_url%>
如果您想保持简单,请不要包含以下变量,因为它会弄乱太多东西(这在 documentation 中并不明显,所以显然我这样做是浪费时间:( ) :
"tracking_settings": {
"subscription_tracking": {
"enable": true,
"substitution_tag": "[unsubscribe_url]"
}
}
只需以原始格式使用它们就可以了。
最好的方法是使用群组取消订阅。
- 首先在Sendgrid中创建一个组:
- 群组 > 取消订阅群组 > 创建群组
- 接下来,将模块插入到 Sendgrid 模板中,在您的电子邮件中创建特定标签,这些标签会在您发出 API 请求时填充
- 转到您的模板
- 在 HTML 块中插入取消订阅模块
- 保存
- 最后提出API请求并指定在步骤1中创建的组:
"asm":{
"group_id":544,
"groups_to_display": [544, 788],
}
- 这些将在发送电子邮件时插入到步骤 2 中提到的模块中。
不幸的是,Sendgrid 退订链接并不像它们应该的那样简单。它们有更详细的解释 here
https://app.sendgrid.com/ > 抑制 > 退订群组 > 创建新群组
记下 group_id/ids。例如 123(只有数字!不是字符串)
使用 node.js
发送电子邮件
const sgMail = require('@sendgrid/mail');
sgMail.setApiKey(SENDGRID_API_KEY);
const tags = { invitedBy : Alex }
const msg = {
to: email,
from: { "email": SENDER_EMAIL,
"name": SENDER_NAME
},
templateId: TEMPLATE_ID,
dynamic_template_data: {
Sender_Name: name,
...tags
},
asm: {
group_id: 123,
groups_to_display: [
123
],
},
};
await sgMail.send(msg);