类别
你发送的每封邮件都有一个类别,说明发送原因,通过 POST /v1/email/messages 上的 category 字段设置。它只接受两个值:marketing 或 transactional,并且只有一个作用:决定哪些屏蔽记录和退订偏好可以阻止该邮件。
退订新闻通讯表达的是对营销邮件的态度,与密码重置无关。类别就是我们区分这两种意图的方式。
两种类别
- marketing:收件人选择接收、也可以选择停止接收的邮件。活动推广、新闻通讯、产品公告、促销优惠。任何 "I don't want this anymore" 是你必须尊重的回答的场景。
- transactional:收件人自身操作所需的邮件。密码重置、邮箱验证、一次性验证码、订单收据、安全和账户提醒。无论收件人的营销偏好如何,这些邮件都必须送达。
问问如果邮件从未送达会怎样。如果收件人发起的流程因此中断,那就是事务性邮件。如果是你发起的对话,那就是营销邮件。
这两种类别是完整集合:没有任何 API 可以创建或配置类别,该字段的值会针对这两个值进行校验。如果需要更细粒度的分类,请在类别之外配合使用标签。
类别如何驱动屏蔽策略
规则只有一条:marketing 会被所有屏蔽原因和任何退出选项阻止,而 transactional 可以穿透投诉屏蔽或仅限营销的退出选项正常投递。 硬退信、手动屏蔽以及针对所有邮件记录的退出选项会同时阻止两者。
这种不对称源于每种原因的含义。硬退信意味着地址不存在,无论什么类别,发送都毫无意义。手动屏蔽是你团队自己的决定,我们绝不会质疑。投诉和退订是关于不想要的邮件的偏好:它们会阻止你的 marketing 发送,而举报你新闻通讯为垃圾邮件的收件人仍然能收到密码重置邮件。这个例外也是刻意设计的:退出选项可以针对所有邮件而非仅限营销邮件进行记录(Record preference 对话框中的 Messages to stop 选项,或 POST /v1/preferences 上的 coverage: all),这代表收件人要求完全静默,因此也会阻止事务性邮件。
被阻止的收件人会在你可以看到的地方被拒绝,每个收件人一行,并附带原因。屏蔽页面提供了按原因分列的表格,并介绍了地址如何进入屏蔽列表。
默认值,以及为什么事务性发送必须主动退出
有两种发送路径会从其他地方获取类别。使用已存储的模板且省略 category 的发送会采用模板自身的分类,因此创建为 transactional 的模板会以事务性方式发送。在发送时设置 category 可以单独为某条消息指定不同的分类,且发送时的值优先。通过 SMTP 提交的邮件从 API 密钥的 SMTP 配置获取类别,未配置的密钥默认为 transactional。
因此,操作性邮件必须主动退出默认值。未设置类别的密码重置邮件会被视为营销邮件:它会带上不应有的退订链接,而且新闻通讯退订会阻止它,即使收件人主动请求了该邮件。请在收据、重置、验证码和账户提醒上设置 category: "transactional":
代码示例
{
"from": "no-reply@yourdomain.com",
"to": ["delivered@messagebird.dev"],
"subject": "Reset your password",
"html": "<p>Click the link below to reset your password...</p>",
"category": "transactional"
}类别作为分析维度
类别附着在邮件上,并在邮件出现的所有位置一同返回,因此无需对每次发送打标签,即可将投递、退信和互动数据拆分为营销流量和操作性流量。消息列表支持按类别筛选,统计 API 按类别拆分指标,仪表盘中的邮件日志也提供相同的筛选器。
后续步骤
- 发送邮件:完整的 POST /v1/email/messages 载荷,包括 category
- 屏蔽:屏蔽列表、三种原因及完整的类别矩阵
- 退订链接:marketing 发送中包含的退出详情
- API 参考:完整的请求和响应结构