【问题标题】:How can I add unsubscribe links to my emails when sending via sendgrid/mail通过 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/Classroom/Basics/Marketing_Campaigns/unsubscribe_groups.html#-Using-a-Custom-Unsubscribe-Link

在网站上,您只需使用简码 [Unsubscribe],这在通过 sendgrid/mail 包发送电子邮件时不起作用。

【问题讨论】:

    标签: sendgrid sendgrid-api-v3


    【解决方案1】:
    1. https://app.sendgrid.com/ > 抑制 > 取消订阅群组 > 创建新群组

    2. 记下 group_id/ids。例如 123(只有数字!不是字符串)

    3. 使用 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】:

      最好的方法是使用群组取消订阅。

      1. 首先在 Sendgrid 中创建一个组:
      • 群组 > 取消订阅群组 > 创建群组
      1. 接下来,将一个模块插入到 Sendgrid 模板中,该模板会在您的电子邮件中创建特定标签,这些标签会在您发出 API 请求时填充
      • 转到您的模板
      • 在 HTML 块中插入取消订阅模块
      • 保存

      1. 最后发出 API 请求并指定在步骤 1 中创建的组:
           "asm":{
              "group_id":544,
              "groups_to_display": [544, 788],
           }
      
      1. 这些将在发送电子邮件时插入到步骤 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 中的任何位置。

        【讨论】:

          猜你喜欢
          • 2020-07-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-03-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多