通过 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 请求时填充
转到您的模板 在 HTML 块中插入取消订阅模块 保存

    最后发出 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 错误:未经授权

如何让 Qt 中的程序不断向我的 Arduino 发送字符串?

如何使用 FCM 向我的数据库中的用户发送推送通知?安卓

如何向我的 gmail 发送电子邮件而不是托管

如何在我的聊天应用程序上向我的其他好友发送文件?

如何向我的苹果IOS用户发送弹出警报?