群发邮件
群发邮件会向整个受众发送一封邮件:新闻通讯、公告,或任何需要同时发送给众多收件人的单条内容。发送开始时,我们会将受众成员解析为收件人列表,因此群发会覆盖该时刻受众中的所有成员。
在控制面板的 Email > Broadcasts 中创建群发邮件,也可以通过群发邮件 API、bird email broadcasts 或 MCP 服务器创建。TypeScript、Python、Go 和 PHP SDK 提供了覆盖整个生命周期的 broadcasts 资源:创建草稿、在仍为草稿时修改、立即或定时发送、列出工作区的群发邮件、查看单条及其计数器、取消已计划或正在发送的群发邮件、删除仍为草稿的群发邮件,以及读取其收件人、事件、已点击链接、发送将消耗的发送配额和发送将解析的受众人数。如需一次性收件人列表,请使用批量发送或单条发送。
创建草稿
从 Broadcasts 列表点击 New broadcast 开始。编辑器是一个单页面:顶部是受众和发件人栏,下方是邮件内容,还有一个用于类别、跟踪和标签的设置控件。没有单独的保存步骤。一旦群发邮件设置了受众和发件人,每次更改都会自动保存,因此草稿在这两项设定完成后即存在,而发送是一个独立的显式操作。
使用 To 字段选择受众,或点击 New 在不离开编辑器的情况下创建一个新受众。
打开编辑器顶部的设置控件,可以配置以下三项:
发件人地址
群发邮件从已验证的发送域名上的地址发出。将本地部分与你的某个已验证域名配对,并根据需要添加显示名称。如果希望回复发送到其他地址,可以添加 Reply-To 地址。点击 Review 时,如果域名未验证,系统会发出警告。
模板
群发邮件指向工作区中的一个邮件模板,模板包含群发邮件发送的主题行和正文。发送时,每个收件人的联系人属性会填充模板中的变量,因此一封群发邮件可以为每个收件人个性化内容。群发邮件只能填充联系人属性,如果模板变量引用了其他内容,发送时会被拒绝,错误信息会指出该变量。
直接在主题行下方的画布中编写内容,或点击 Choose a template 从现有模板开始。该选项仅在群发邮件为空白时可用,因为在已填写主题或正文后选择模板会覆盖已有内容。群发邮件发送的是模板的已发布版本,因此只有草稿的模板无法用于发送。
如果模板有多种语言,群发会将其中一种发送给整个受众。创建或更新群发时通过 template.language 指定语言,不指定则发送模板的默认语言。仅更改语言不会改变群发所固定的模板版本(如果已有固定版本)。群发在准备发送时固定到某个版本,因此定时群发会发送该时刻已发布的版本,无论你在此之前是否更改了语言。
发送或定时发送
发送是一个独立的显式操作,可通过编辑器的审核按钮或群发详情页的发送或重新安排来执行。两者都会打开一个对话框,检查群发是否完整,警告可能导致发送失败的问题,然后让你选择立即发送或选择最多一年以内的某个时间。定时群发仍然可以编辑,在发送真正开始之前你都可以重新安排时间。
发送时会检查受众中是否仍有可送达的人。如果受众中没有任何人拥有邮箱地址,或所有地址均被抑制,则在此时拒绝发送,而不是稍后再失败。
发送时会检查两个组织级别的限制。
第一个是计费周期内可发送的群发数量,由你的套餐决定。已保存的草稿不计入此限制,取消群发也不会退回额度。用完之后,要么等待下一个计费周期,要么升级到额度更高的套餐。
第二个限制并发群发数量。如果你在达到上限时选择立即发送,请求会被拒绝。定时群发会等待空闲名额。
查找群发
按标签或模板名称搜索列表,或按状态、受众或日期范围筛选。日期范围按每条群发的创建时间筛选,而非发送时间,因此上周创建、下月发送的定时群发仍然显示在 "Last 7 days." 下
通过表格上方的按钮将当前视图导出为 CSV,或调用导出群发为 CSV,接受相同的筛选条件。超过 50,000 行时导出会被拒绝,而不是静默截断。缩小筛选范围后重试。
群发状态
群发始终处于四个阶段之一,列表上的状态筛选器使用的也是这四个阶段:
| 阶段 | 群发所处的位置 | status 值 |
|---|---|---|
| 草稿 | 已保存但未确认发送 | draft |
| 已安排 | 已确认并设定未来发送时间,仍可编辑 | scheduled |
| 发送中 | 正在发送,或正在取消 | accepted、sending、canceling |
| 已完成 | 已结束,无论是发送完毕、已取消还是失败 | sent、canceled、failed |
每行的标记显示其阶段内的确切状态。该值也是 API 的 status 字段返回的值。
取消或删除
从详情页取消已安排或正在发送的群发,也可以使用 bird email broadcasts cancel,或通过取消群发及 broadcasts.cancel SDK 方法。尚未送达的收件人将被跳过,已在途中的消息无法撤回。删除仅适用于草稿且不可恢复,通过相同的三种方式操作:详情页、bird email broadcasts delete 或删除群发。
群发失败时
失败的群发会在详情页显示原因:先是原因类别,然后是一句描述具体原因的说明。通过 API,这两项分别是 failure_reason 和 failure_detail 字段。failure_detail 告诉你在某个原因类别下实际触发了哪个具体原因。
群发的发送配置仅在发送开始时才检查。如果发送域在安排时已验证但在发送前失去验证,群发会在该时刻失败。重新验证域名后再次发送群发即可。
failure_reason | 发生了什么 | 应对措施 |
|---|---|---|
content_invalid | 群发无法完成发送配置。原因通常在配置而非内容:发送域未验证、模板缺失或未发布、模板包含循环、或 IP 池不可用 | 修复 failure_detail 指出的问题,然后重新发送 |
empty_audience | 受众没有成员,或抑制规则排除了所有成员 | 添加成员,或检查抑制规则 |
audience_unavailable | 受众已不存在 | 将群发指向另一个受众 |
quota_exceeded | 发送超出了组织的每日或每月邮件额度,可能在开始前或发送途中超出 | 等待额度重置、缩小受众范围或升级套餐 |
insufficient_funds | 工作区余额不足以支付此次发送 | 充值钱包 |
internal_error | 我们这边出了问题 | 重试,如果反复出现请提交工单 |
群发和单次发送共享同一邮件额度。组织账单概览中的套餐卡片显示已使用的额度。套餐与定价介绍了每个套餐包含的内容。
跟踪送达
发送开始后,群发的概览选项卡显示收件人数和已发送数,以及送达率、打开率、点击率、退信率和投诉率及其对应数量。收件人选项卡列出每个收件人及其送达状态、未送达原因、送达时间以及打开和点击记录。搜索框要求输入完整有效的邮箱地址;部分地址或仅输入域名会验证失败,搜索框会标记为无效,表格保持之前的显示内容不变。表格上方的按钮可将该选项卡导出为 CSV,导出群发收件人为 CSV 会将相同文件返回到 API 密钥;两者上限均为 500,000 行,超出时拒绝导出而非截断,与群发列表导出行为一致。事件选项卡是群发的原始事件流,使用事件与 Webhook 中描述的事件类型。
演练群发
在受众中放入一个沙盒地址,该联系人会被模拟而非实际发送:delivered@messagebird.dev 报告已送达,bounce@messagebird.dev 报告退信,两者都会产生与真实收件人相同的事件和 Webhook。这样你可以在不发送邮件的情况下测试整个流程以及读取事件的处理程序。受众可以混合沙盒和真实联系人;每个联系人获得各自的结果。模拟收件人仍然计入你的发送额度,因此演练消耗的配额与真实发送相同。
后续步骤
- 受众:群发的收件人列表
- 邮件模板:群发所指向的主题和正文
- 邮件指标:群发汇入的工作区级视图
bird email broadcasts:每个群发操作对应一条 CLI 命令- 创建群发:API 参考文档,包含完整的请求和响应 schema 以及每种 SDK 的代码示例
- 邮件群发:一封邮件发送给全部受众:一段演示如何发送群发并查看结果的视频