如何在通过sendgrid/mail发送的邮件中添加退订链接

24
5个回答

15

由于您是使用代码发送消息,因此这是一种“事务性”类型的消息。您需要在帐户级别(通过[UI](订阅跟踪设置)或API)打开订阅跟踪筛选器,或者在发送消息时作为mail/send API调用的一部分打开它,在tracking_settings下。

重要的是要注意,您不能混合使用它们。如果您在mail/send API调用中定义了任何内容,则需要在该调用中定义所有内容以进行订阅跟踪。SendGrid不会查看邮件级别的某些设置和帐户级别的某些设置。

大多数用户只会在帐户级别上设置它。在那里,您可以自定义退订页脚的HTML和文本,自定义着陆页面的HTML,或将着陆重定向到您选择的URL,这将向收件人发送?email=test@domain.com的URL字符串,供您的系统捕获。您还可以定义“替换标记”,例如[%unsubscribe%],以便您可以在HTML中的任何位置放置URL。


12
  1. https://app.sendgrid.com/ > Suppressions > 取消订阅组 > 创建新组

  2. 记下组 ID/IDs。例如:123(只有数字!不是字符串) enter image description here

  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); 


12

有一个技巧可以节省我一两个小时的时间,那就是:

除其他内容外,在 API JSON 中还可以发送以下内容:

  "asm":{
    "group_id":123,
    "groups_to_display": [123],
    }

然后,以下变量可以在模板中使用:

<%asm_group_unsubscribe_raw_url%>
<%asm_preferences_raw_url%>

如果您想保持简单,请不要包含以下变量,因为它涉及太多内容(这在文档中并不明显,所以我尝试了,浪费了时间 :( ):

  "tracking_settings": {
    "subscription_tracking": {
      "enable": true,
      "substitution_tag": "[unsubscribe_url]"
    }
  }

只需使用它们的原始格式,您就可以顺利完成。


3
请问您能否详细说明一下如何使用以下代码节省时间: "tracking_settings": { "subscription_tracking": { "enable": true, "substitution_tag": "[unsubscribe_url]" } } - Pragyanshu Sharma

7

最佳方法是使用群组退订。

  1. 首先在Sendgrid中创建一个群组:
  • 群组 > 退订群组 > 创建群组
  1. 接下来,在Sendgrid模板中插入一个模块,创建特定的标签,在进行API请求时会自动填充这些标签:
  • 进入您的模板
  • 在HTML区块中插入一个退订模块
  • 保存

添加退订模块

  1. 最后发送API请求并指定第一步创建的群组:
     "asm":{
        "group_id":544,
        "groups_to_display": [544, 788],
     }
  1. 当邮件发送时,这些内容将被插入到步骤2中提到的模块中。

不幸的是,Sendgrid退订链接并不像它们本应该的那么简单。这些内容在这里有更详细的解释。


3
最简单的方法是通过SendGrid GUI来完成此操作。
转到设置 -> 跟踪 -> 订阅跟踪。

3
这是最简单的方法,但需要谨慎使用,因为它将插入全局退订链接,允许用户从您在Sendgrid账户中发送的每封电子邮件中移除自己——没有例外。 - paddys_1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接