通过 sendgrid/mail 发送时,如何向我的电子邮件添加取消订阅链接
Posted
技术标签:
【中文标题】通过 sendgrid/mail 发送时,如何向我的电子邮件添加取消订阅链接【英文标题】:How can I add unsubscribe links to my emails when sending via sendgrid/mail 【发布时间】:2018-08-28 14:20:45 【问题描述】:我正在使用:https://github.com/sendgrid/sendgrid-nodejs/tree/master/packages/mail 发送电子邮件
我无法找到如何添加 <a href="[Unsubscribe]">Unsubscribe</a>
等效项。这记录在此处:https://sendgrid.com/docs/Clas-s-room/Basics/Marketing_Campaigns/unsubscribe_groups.html#-Using-a-Custom-Unsubscribe-Link
在网站上,您只需使用简码 [Unsubscribe],这在通过 sendgrid/mail 包发送电子邮件时不起作用。
【问题讨论】:
【参考方案1】: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);
【讨论】:
【参考方案2】:最好的方法是使用群组取消订阅。
-
首先在 Sendgrid 中创建一个组:
-
接下来,将一个模块插入到 Sendgrid 模板中,该模板会在您的电子邮件中创建特定标签,这些标签会在您发出 API 请求时填充
-
最后发出 API 请求并指定在步骤 1 中创建的组:
"asm":
"group_id":544,
"groups_to_display": [544, 788],
-
这些将在发送电子邮件时插入到步骤 2 中提到的模块中。
不幸的是,Sendgrid 取消订阅链接并没有想象中的那么简单。更详细的解释here
【讨论】:
【参考方案3】:可以为我节省一两个小时的提示是:
可以在 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]"
只需以原始格式使用它们就可以了。
【讨论】:
您能否详细说明您是如何使用“tracking_settings”节省时间的:“subscription_tracking”:“enable”:true,“substitution_tag”:“[unsubscribe_url]”?【参考方案4】:最简单的方法是通过SendGrid GUI 执行此操作。
转到设置 -> 跟踪 -> 订阅跟踪
【讨论】:
这是最简单的,但应谨慎使用,因为它会插入全局取消订阅链接,允许用户从您从您的 Sendgrid 帐户发送的每封电子邮件中删除自己 - 没有例外。【参考方案5】:由于您使用代码发送,因此它是一种“交易”类型的消息。您需要在帐户级别打开订阅跟踪过滤器(通过 [UI](订阅跟踪设置)或 API),或者在发送消息时将其打开,作为 mail/send API call 的一部分,在tracking_settings
下。
请务必注意,您不能将它们混合使用。如果您在 mail/send
API 调用中定义 anything,则需要在该调用中为订阅跟踪定义 everything。 SendGrid 不会查看邮件级别的某些设置,以及帐户级别的某些设置。
大多数用户只会在帐户级别进行设置。在那里,您可以自定义取消订阅页脚的 HTML 和文本,自定义登录页面的 HTML,或将登录重定向到您选择的 URL,这会将收件人发送到您的系统的 URL 字符串中带有 ?email=test@domain.com
到抓住。您还可以定义“替换标记”,例如[%unsubscribe%]
,以便您可以将 URL 放置在 HTML 中的任何位置。
【讨论】:
以上是关于通过 sendgrid/mail 发送时,如何向我的电子邮件添加取消订阅链接的主要内容,如果未能解决你的问题,请参考以下文章
node.js @sendgrid/mail 错误:未经授权